Mic*_*nan 18 custom-attributes razor asp.net-mvc-3
我正在使用Knockout-JS将我视图中的属性绑定到我的视图模型.Knockout-JS使用一个名为"data-bind"的自定义属性,您必须将该属性附加到要绑定到其中的控件以查看模型对象.
例:
<input type='text' name='first-name' data-bind='value: firstName'/>
Run Code Online (Sandbox Code Playgroud)
注意'data-bind'属性.
在我的视图渲染中,我在渲染具有此属性的文本框时遇到问题.我知道Html.EditorFor,Html.TextBoxFor和Html.TextBox助手都带有一个匿名对象,您可以使用它来指定自定义属性.这个实现的唯一问题是C#不允许破折号作为变量名,所以这不会编译:@Html.EditorFor(m => m.FirstName,new {data-bind ="value:firstName"});
我唯一能想到的是(在视图模型中):
public class DataBindingInput
{
public string Value { get; set; }
public string DataBindingAttributes { get; set }
}
public class MyViewModel
{
...
public DataBindingValue firstName { get; set; }
....
}
Run Code Online (Sandbox Code Playgroud)
以及一个名为"DataBindingInput.cshtml"的视图模板:
@model DataBindingInput
<input type='text' data-binding='@Model.DataBindingAttributes' value='@Model.Value'>
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我丢失了输入名称的自动生成,因此它不能用于回发,因为模型绑定器不知道如何绑定它.
我怎样才能做到这一点?
归档时间: |
|
查看次数: |
8005 次 |
最近记录: |