gpt4 book ai didi

javascript - 从 Knockout 发布到 ASP.NET MVC Controller

转载 作者:行者123 更新时间:2023-11-29 17:26:24 26 4
gpt4 key购买 nike

我正在尝试理解 knockout.js。目前,我正在尝试对我的 JSON 对象到达 Controller 的 MVC Controller 执行 POST。有人知道在线可下载的代码示例吗?我似乎找不到任何证明这一点的代码。我在此处显示的视频中看到了它:http://channel9.msdn.com/Events/MIX/MIX11/FRM08 .但是,我的方法目前给我一个 404。我怀疑这与我序列化某些东西的方式有关。因此,我正在寻找一个例子。

谢谢!

最佳答案

除了使用 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)
});

这是 Controller Action :

    /// <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 模型必须具有与您的 MVC Controller 操作期望的 .NET 对象相同的属性名称,否则 MVC 模型绑定(bind)将无法工作。我喜欢的一种设计模式是将我的 JS 模型作为 .NET POCO 对象进行管理,然后将它们的空默认版本序列化到客户端。这意味着我不必担心保持 JS 文件和我的 .NET CLR 对象同步。

我还应该提到我正在使用 MVC 3。

关于javascript - 从 Knockout 发布到 ASP.NET MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com