如何使用Ajax在MVC 3?

我有,我想通过Ajax的提交表单。 这种形式被存储在一个局部视图 - 所以整个局部视图表示一个单一的形式。

我产生这些形式与foreach循环十:

@foreach (Product p in Model.Products) { @Html.Partial("_EditProduct", p) }

这工作得很好。

在_EditProduct局部视图我有:

@using (Ajax.BeginForm("Update", "Product", new AjaxOptions { UpdateTargetId = "updateStatus" })) { <span id="updateStatus">Update will go here</span> } // Product fields <div> <input type="submit" value="Update" class="btn"/> </div> }

点击提交按钮的帖子到一个控制器:

[HttpPost] public JsonResult Update(int id, FormCollection collection) { ProductService pService = new ProductService(); Product p =pService.Find(id); UpdateModel(p); return Json(p); }

这将更新产品,但返回由于序列化错误崩溃。

主要的问题是,我很难找到MVC 3一个很好的资源,尤其是阿贾克斯的一部分。 教程和博客似乎在一个非常不同的方式做的一切。 理想情况下,我想尽可能多地使用.NET和MVC 3的功能可能的,而不是写的jQuery / JavaScript的负荷。

谢谢

编辑:我想补充,我想从MS Ajax控件工具包留远

--------------解决方案-------------

有关序列化错误...... IIRC它会如果你有产品延迟加载性能和数据库连接被关闭抛出。 你可以不喜欢返回JSON(新{product.a,product.b,product.c})等。

MVC自其第一个版本一直有阿贾克斯帮手。 这些让你产生“支持Ajax的”HTML elements.However,在ASP.NET MVC 3这些助手已显著提高。 他们不再依赖于MS-Ajax客户端库,做好自己的工作 - 而是使用jQuery和与MVC3附带的不显眼的jQuery的扩展。 他们还利用HTML5数据 - 属性来标注与元数据的特定元素,而不是定义内嵌脚本。

上面的例子现在生成与MVC3以下标记:

因此,有jQuery和的jQuery.unobtrusive-AJAX脚本,包括和使用JavaScript,如果它使提交表单。

也看看http://dotmac.rationalmind.net/2011/03/basic-ajax-with-mvc3-razor/

Asp.net MVC和Ajax

由于@Dipti梅塔提到有Ajax ,因为V1内置了Asp.net MVC佣工,但我想指出的是,这是不这样做(和我看到的东西会没有多少开发人员使用该功能)的唯一途径。

那么还有什么阿贾克斯方面? 好。 您可以使用通常Html佣工和写入相当简单jQuery代码。 这样,你有完全控制您的客户端处理(无论是特殊的数据格式,即应被发送到服务器等复杂对象的准备)。

但基本上我也想给你指出一些博客文章,这将告诉你一些非常有用的日常情况下,您可能会遇到在开发Asp.net MVC + Ajax应用程序:

  • 验证错误使用Ajax时在Asp.net MVC处理
  • 模型绑定(无论是使用Ajax或不) IList<T>在Asp.net MVC
  • 发送使用jQuery的Ajax复杂的JavaScript对象Asp.net MVC
  • 其他Asp.net MVC相关的帖子
分类:asp.net的MVC 时间:2015-03-15 人气:2
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.916 (s). 10 q(s)