ASP.NET MVC 3的jquery ajax表单

前端之家收集整理的这篇文章主要介绍了ASP.NET MVC 3的jquery ajax表单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是一个容易的问题,但对我来说现在不清楚,我必须把事情排除在我的头上…也许有人可以帮助我与= = …

我知道MVC带有Ajax助手.
我知道有微软库,还有jquery.
我知道,使用MVC 3,他们引入了不引人注目的JavaScript,它为HTML添加了一些特殊的标签

但ist如何一起玩?

示例:我想发布一个远程表单(部分视图)每个ajax添加评论博客文章.没有发布整个页面.

在我的部分视图中,我会使用Ajax.BeginForm()这是MvcAjax还是Jquery?
或者我将使用Html.BeginForm()并在窗体的点击事件上注册$.post.如果javascript被禁用或不支持,这也将有一个简单的html的回退….

或者一般来说,什么时候使用什么来发布评论博客文章?我假设它是正确的,我发布到评论控制台的创建动作,我将使用JsonModelBinder将其转换为模型.之后,我会返回Json,并将其附加到我的评论列表…

这是合理的吗?

解决方法

Ajax.BeginForm() is this then MvcAjax or Jquery?

默认情况下是jquery.您需要引用jquery.unobtrusive-ajax.js脚本才能使其工作.

Or would I use Html.BeginForm() and register something like $.post on the click event of the Form.

这是另一种选择.就我个人而言

I assume that it is correct,that I am posting to the create action of the commentscontroller and I would use the JsonModelBinder to transform it to a model. After that I would return Json and would append it to my comments list…

JsonModelBinder已经在ASP.NET MVC 3中引入,它允许您将JSON字符串发送到将被映射回视图模型的控制器操作.例如,如果您有以下视图模型:

public class Personviewmodel
{
    public string Name { get; set; }
    public int Age { get; set; }
}

并采取以下行动:

public ActionResult Foo(Personviewmodel person) 
{
    ...    
}

在AJAX中调用它的传统方式是:

$.ajax({
    url: '@Url.Action("foo")',type: 'POST',data: { name: 'john',age: 20 },success: function(result) {
        // TODO:
    }
});

并且在ASP.NET MVC 3中,您可以发送一个JSON作为请求参数,该参数将绑定到Personviewmodel操作参数:

$.ajax({
    url: '@Url.Action("foo")',contentType: 'application/json',data: JSON.stringify({ name: 'john',age: 20 }),success: function(result) {
        // TODO:
    }
});

猜你在找的asp.Net相关文章