我在尝试了解knockout.js。目前,我正在尝试对我的JSON对象获取到控制器的MVC控制器执行POST。有人知道在线下载代码示例吗?我似乎无法找到证明这一点的任何代码。我在这里看到的视频中看到它:http://channel9.msdn.com/Events/MIX/MIX11/FRM08。但是,我现在的方法是给我一个404。我怀疑这跟我如何序列化一些东西有关。因此,我正在寻找一个例子。从Knockout发布到ASP.NET MVC控制器
谢谢!
我在尝试了解knockout.js。目前,我正在尝试对我的JSON对象获取到控制器的MVC控制器执行POST。有人知道在线下载代码示例吗?我似乎无法找到证明这一点的任何代码。我在这里看到的视频中看到它:http://channel9.msdn.com/Events/MIX/MIX11/FRM08。但是,我现在的方法是给我一个404。我怀疑这跟我如何序列化一些东西有关。因此,我正在寻找一个例子。从Knockout发布到ASP.NET MVC控制器
谢谢!
除了使用ko.mapping插件首先打开模型外,对于完成此任务的knockout没有什么特别之处。
在这段代码中,我将对象searchParams发布到Search/ExecuteSearch。这使用jQuery的,
var jsonString = ko.mapping.toJSON(this.searchParams);
$.ajax({
url: "/Search/ExecuteSearch",
data: jsonString,
type: 'POST',
contentType: 'application/json',
dataType: 'json',
success: this.setSearchResults.bind(this)
});
这是控制器的动作:
/// <summary>
/// Execute a search
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
[HttpPost]
public JsonResult ExecuteSearch(AdvertisementSearch search)
{
var searchExecutor = new SearchExecutor();
return Json(searchExecutor.ExecuteSearch(search, CustomerData));
}
这里最重要的是,你的JS模型必须具有相同的属性名称作为.NET对象你的MVC控制器动作需要,否则MVC模型绑定将不起作用。我喜欢的设计模式是将我的JS模型管理为.NET POCO对象,然后将它们的空默认版本序列化到客户端。这意味着我不必担心将JS文件和.NET CLR对象保持同步。
我还要提到的是,我使用MVC 3
分享一些你的代码 – rene
我想通了。我没有正确映射我的路线:( –