首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MVC 3中使用Ajax?

如何在MVC 3中使用Ajax?
EN

Stack Overflow用户
提问于 2011-04-20 12:15:58
回答 3查看 10.6K关注 0票数 0

我有一个表单,我想通过Ajax提交。此表单存储在部分视图中,因此整个部分视图表示单个窗体。

我用foreach循环生成了其中的10个表单:

代码语言:javascript
复制
 @foreach (Product p in Model.Products)
 {                     
    @Html.Partial("_EditProduct", p)                    
 }

这个很好用。

在_EditProduct部分视图中,我有:

代码语言:javascript
复制
@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>
    }

单击submit按钮向控制器发帖:

代码语言:javascript
复制
[HttpPost]
public JsonResult Update(int id, FormCollection collection)
{
   ProductService pService = new ProductService();
   Product p =pService.Find(id);

   UpdateModel(p);
   return Json(p);            
}

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

主要的问题是我很难在MVC 3上找到一个好的资源,特别是Ajax部分。教程和博客似乎以一种非常不同的方式做每件事。理想情况下,我希望尽可能多地使用.NET和MVC 3功能,而不是编写大量的jQuery/JavaScript。

谢谢

编辑:只是想补充一下,我想远离

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-20 13:46:42

关于序列化error...iirc,如果您在Product中有延迟加载的属性,并且db连接关闭了,它将抛出。您可以像返回Json(新的{product.a、product.b、product.c})等。

票数 2
EN

Stack Overflow用户

发布于 2011-04-20 12:27:26

自从第一个版本以来,MVC就一直有Ajax助手。这些允许您生成“ajax支持的”html elements.However,在ASP.NET MVC 3中,这些帮助已经得到了显著的改进。他们不再依赖MS客户端库来完成他们的工作,而是使用jQuery和MVC3附带的不引人注目的jQuery扩展。他们还使用HTML5数据属性来用元数据对特定元素进行注释,而不是定义内联脚本。

上面的示例现在使用MVC3生成以下标记:

因此,包含jQuery和jQuery.unobtrusion-ajax脚本,并在启用时使用javascript提交表单。

还请看一下http://dotmac.rationalmind.net/2011/03/basic-ajax-with-mvc3-razor/

票数 2
EN

Stack Overflow用户

发布于 2011-04-21 20:51:32

Asp.net MVC和Ajax

正如@Dipti所提到的,自Ajax以来,Asp.net MVC中就内置了一些V1助手,但我想指出的是,这并不是唯一的方法(在我看来,并没有多少开发人员使用这种功能)。

那么,在Ajax方面还有什么呢?井。您可以使用通常的Html助手并编写相当简单的jQuery代码。通过这种方式,您可以完全控制客户端处理(无论是特殊的数据格式设置,还是准备发送到服务器的复杂对象等)。

但基本上,我还想向您介绍一些博客文章,这些文章将向您展示在开发Asp.net MVC + Ajax应用程序时可能遇到的一些非常有用的日常场景:

  • 使用Ajax时Asp.net MVC中的验证错误处理
  • 在Asp.net MVC中
  • 使用jQuery Ajax向Asp.net MVC发送复杂Javascript对象
  • 其他与Asp.net MVC相关的帖子
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5730085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档