是否可以將數據從模型綁定到挖空視圖模型。這裏有一個例子:將模型數據綁定到Knockout ViewModel?
public ActionResult Edit(int id)
{
Product product = _db.Products.FirstOrDefault(x=>x.ItemId == id);
return View(product);
}
然後在查看我歷來做一些像這樣:
@model myApp.Models.Product
@using(Html.BeginForm())
{
@Html.EditorFor(x=>x.ItemName)
@Html.ValidationMessageFor(x=>x.ItemName)
<input type="submit" value="Update" />
}
但隨着淘汰賽我會創造從那裏我會做一些像EditProductViewModel
:
var EditProductViewModel = {
ItemName = ko.observable('')
};
EditProductViewModel.Edit = function() {
$.ajax({
url: "Home/Edit",
data: ko.ToJson(this),
success: function() {
// do something
}
});
};
$(function() {
ko.applyBindings(EditProductViewModel);
});
而不是使用Html幫助者我會做這樣的事情在我看來:
<form data-bind="submit: Edit">
<input type="text" data-bind="value: ItemName" />
<input type="submit" value="Update" />
</form>
那麼我怎樣才能用我的控制器返回的數據填充這個?
但我的行動需要返回一個視圖,否則視圖如何從我的編輯行動加載?爲了以JSON格式加載模型,額外的操作似乎很麻煩? – CallumVass
你爲什麼使用兩種方法來渲染視圖?似乎如果你想要一個JavaScript方法來渲染視圖,你應該充分使用JavaScript並擺脫MVC視圖。或相反亦然 –