这可能是一个简单的问题,但对我来说现在还不清楚,我必须在头脑中把事情整理好。。。也许有人能帮我
我知道MVC附带了Ajax助手。
我知道有微软图书馆,也有jquery。
我知道MVC3引入了不引人注目的javascript,它为cleannes的html添加了一些特殊的标记
但是ist如何在一起玩呢
示例:我想根据ajax发布一个远程表单(部分视图),以便向博客帖子添加评论。没有张贴整个页面回来
在我的局部观点中,我会使用Ajax.BeginForm()这是MvcAjax还是Jquery?
或者我会使用Html.BeginForm()并在表单的单击事件上注册类似$.post的内容。如果禁用或不支持javascript,这也会有纯html的回退
或者在一般情况下,什么时候用什么来发表评论?。。。我假设这是正确的,我正在发布commentscontroller的创建操作,我将使用JsonModelBinder将其转换为模型。之后我会返回Json并将其附加到我的评论列表中
这样做的理由合理吗
BeginForm()那么这是MvcAjax还是Jquery
默认情况下,它是jquery。您需要参考jquery.unobtrusiveajax.js脚本才能工作
或者使用Html.BeginForm()并在表单的单击事件上注册类似$.post的内容
这是另一种选择。我个人就是这么做的
我假设这是正确的,我将发布到commentscontroller的创建操作,并使用JsonModelBinder将其转换为模型。之后我会返回Json并将其附加到我的评论列表中
ASP.NET MVC 3中引入了JsonModelBinder,它允许您向控制器操作发送JSON字符串,该操作将映射回视图模型。例如,如果您具有以下视图模型:
公共类PersonViewModel
{
公共字符串名称{get;set;}
公共整数{get;set;}
}
以及以下行动:
公共行动结果Foo(PersonViewModel person)
{
...
}
在AJAX中调用它的传统方法是:
$.ajax({
url:“@url.Action(“foo”)”,
键入:“POST”,
资料:{姓名:'john',年龄:20},
成功:功能(结果){
//待办事项:
}
});
在ASP.NET MVC 3中,您可以发送JSON作为请求参数,该参数将绑定到PersonViewModel操作参数:
$.ajax({
url:“@url.Action(“foo”)”,
键入:“POST”,
contentType:'应用程序/json',
数据:JSON.stringify({name:'john',年龄:20}),
成功:功能(结果){
//待办事项:
}
});