この@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());
});
EditorFor
への3番目のパラメーターは、本来の動作を実行しません。
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" });
私はこれに少し遅れていることを理解していますが、これが私が使用している解決策です。
次のように、フィールドの名前(この場合は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 })
これが誰かを助けることを願っています。