13

我尝试了这个 @Html.EditorFor(model => model.Name, " ", new { data_bind = "value:firstName" }); 和其他可能的重载,但它们似乎都不起作用。

其余代码:

<script type="text/javascript">
$(document).ready(function () {

    function AppViewModel() {
        this.firstName = ko.observable("");
        this.lastName = ko.observable("");
    }
    ko.applyBindings(new AppViewModel());
});

4

2 回答 2

31

你的第三个参数EditorFor没有做你认为它应该做的事情。

请参阅http://msdn.microsoft.com/en-us/library/ff406461(v=vs.98).aspx

EditorFor无法向元素添加 HTML 属性。改用TextBoxFor

@Html.TextBoxFor(model => model.Name, new { data_bind = "value:firstName" });
于 2013-05-23T18:44:34.807 回答
1

我知道我对此有点晚了,但这是我一直在使用的解决方案。

将字段名称(在本例中name)作为additionalViewData类似的一部分传递给编辑器模板:

@Html.EditorFor(t => t.name, "", new { fieldName = "name" })

然后在你的editorTemplate你可以有这个:

@{
    var fieldName = ViewData.Where(v => v.Key == "fieldName").FirstOrDefault().Value;
}
@Html.TextBox("", Model, new { data_bind = "value:"+fieldName })

希望这可以帮助某人。

于 2014-07-21T03:02:29.837 回答