asp.net-mvc-3 – MVC 3 knockoutjs:在使用EditorFor作为布尔字段时添加data-b
发布时间:2020-05-25 06:58:55 所属栏目:asp.Net 来源:互联网
导读:使用@ Html.EditorFor(model = model.IsClient),其中IsClient是一个布尔值,使用Not Set,Yes和No作为选项呈现下拉列表. 一切都很好. 现在我想将knockoutjs与我喜欢的结果下拉列表一起使用,那么如何使用@ Html.EditorFor添加data-bind属性,我需要使用knockoutjs
|
使用@ Html.EditorFor(model => model.IsClient),其中IsClient是一个布尔值,使用Not Set,Yes和No作为选项呈现下拉列表. 一切都很好. 现在我想将knockoutjs与我喜欢的结果下拉列表一起使用,那么如何使用@ Html.EditorFor添加data-bind属性,我需要使用knockoutjs来处理这个下拉列表? 我试过了: @Html.EditorFor(model => model.IsClient,new Dictionary<string,object> { { "data-bind","value: Account.IsClient" } })
但是,它使用对象additionalViewData参数,并且它不呈现data-bind属性.这可能很自然,因为此参数可能与渲染标记的Html属性无关. 但是,找不到任何合理的文档,并且没有其他重载看起来可能是我想要的候选者. TIA有什么建议. 解决方法关于ASP.NET MVC 2中的显示和编辑器模板的Brad Wilson blogged所以你可以修改boolean的默认模板并添加你需要的属性(/ Views / Shared / EditorTemplates / MyTemplate.cshtml):@{
bool? value = null;
if (ViewData.Model != null)
{
value = Convert.ToBoolean(ViewData.Model,System.Globalization.CultureInfo.InvariantCulture);
}
var triStateValues = new List<SelectListItem>
{
new SelectListItem
{
Text = "Not Set",Value = String.Empty,Selected = !value.HasValue
},new SelectListItem
{
Text = "True",Value = "true",Selected = value.HasValue && value.Value
},new SelectListItem
{
Text = "False",Value = "false",Selected = value.HasValue && !value.Value
},};
}
@if (ViewData.ModelMetadata.IsNullableValueType)
{
<!-- TODO: here you can use any attributes you like -->
@Html.DropDownList(
"",triStateValues,new {
@class = "list-box tri-state",data_bind="value: " + ViewData.TemplateInfo.GetFullHtmlFieldName("") // you could also use ViewData.ModelMetadata.PropertyName if you want to get only the property name and not the entire navigation hierarchy name
}
)
}
else
{
@Html.CheckBox("",value ?? false,new { @class = "check-box" })
}
最后: @Html.EditorFor(model => model.IsClient,"MyTemplate") 或使用UIHint属性修饰视图模型上的IsClient属性: [UIHint("MyTemplate")]
public bool? IsClient { get; set; }
然后: @Html.EditorFor(x => x.IsClient) 将自动选择自定义编辑器模板. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile(“a
- asp.net – 如何在Win Server 2k8和IIS7上修复404.17错误
- asp.net – Aspnet网站管理工具,Users表或aspnet_users表
- .net – 排除某些页面使用HTTPModule
- asp.net-mvc – IIS Express – HTTP错误500.19 0x800700b7
- asp.net-mvc – Sitecore在我的MVC解决方案中提供了一个空白
- asp.net – HttpContext.Current.User!= HttpContext.User
- 我的ASP.Net代码可以从sendgrid得到确认邮件已发送吗?
- App_GlobalResources(ASP.NET)中的子文件夹
- Asp.net MVC json还是Json.net?
推荐文章
站长推荐
- asp.net-mvc-3 – 如何在MVC3自定义编辑器模板中
- asp.net-mvc – WebAPI窗体身份验证SimpleMember
- asp.net-mvc – jqGrid和MVC3 – 添加模型验证
- asp.net-mvc – 如何在ASP.NET MVC部分视图中使用
- asp.net – 什么是.MSPX文件扩展名?
- asp.net-mvc – 如何确定视图是否为ASP.NET MVC中
- asp.net-mvc-4 – 在asp.net mvc 4模型中更改验证
- asp.net – IIS7中的SQL Server和Windows身份验证
- asp.net – 更改单个URL查询字符串值
- asp.net – Visual Studio 2017错误:无法启动程
热点阅读
