Mon*_*per 2 javascript knockout.js
我想了解knockout.js.目前,我正在尝试对我的JSON对象到达控制器的MVC控制器进行POST.有人知道在线可下载的代码示例吗?我似乎无法找到任何证明这一点的代码.我在这里显示的视频中看到过:http://channel9.msdn.com/Events/MIX/MIX11/FRM08.但是,我的方法目前给我一个404.我怀疑它与我如何序列化的东西有关.因此,我正在寻找一个例子.
谢谢!
除了使用ko.mapping插件首先解开模型之外,执行此任务的敲除确实没什么特别之处.
在这个片段中,我将对象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)
});
Run Code Online (Sandbox Code Playgroud)
这是控制器动作:
/// <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));
}
Run Code Online (Sandbox Code Playgroud)
这里重要的是你的JS模型必须具有与MVC控制器操作所期望的.NET对象相同的属性名称,否则MVC模型绑定将不起作用.我喜欢的设计模式是将我的JS模型作为.NET POCO对象进行管理,然后将它们的空的默认版本序列化到客户端.这意味着我不必担心保持JS文件和我的.NET CLR对象同步.
我还要提一下,我正在使用MVC 3.