sil*_*ter 12 ajax asp.net-mvc jquery asp.net-mvc-3
这可能是一个简单的问题,但对我来说现在还不清楚,我必须把事情分类在我脑海里......也许有人可以帮助我=)...
我知道MVC附带了Ajax Helpers.我知道有微软库,还有jquery.我知道在MVC 3中他们引入了不引人注目的javascript,它为html添加了一些特殊的标签,用于清洁......
但是怎么一起玩?
示例:我想根据ajax发布一个远程表单(部分视图),以便为博客帖子添加评论.没有发回整个页面.
在我的部分视图中我会使用的Ajax.BeginForm()
是MvcAjax还是Jquery?或者我会Html.BeginForm()
在表格的点击事件中使用和注册类似$ .post的内容.如果javascript被禁用或不受支持,这也会有普通html的后备....
或者一般来说什么时候使用什么发布评论到博客文章?...我认为它是正确的,我发布到commentscontroller的创建动作,我会使用JsonModelBinder将其转换为模型.之后我会返回Json并将其附加到我的评论列表中......
这样做是否合理?
Dar*_*rov 30
Ajax.BeginForm()是MvcAjax还是Jquery?
默认情况下它是jquery.您需要引用jquery.unobtrusive-ajax.js
脚本才能使其正常工作.
或者我会使用Html.BeginForm()并在Form的click事件上注册类似$ .post的内容.
那是另一种选择.就个人而言,这就是我的工作.
我假设它是正确的,我发布到commentscontroller的创建操作,我会使用JsonModelBinder将其转换为模型.之后我会返回Json并将其附加到我的评论列表中......
JsonModelBinder已经在ASP.NET MVC 3中引入,它允许您将JSON字符串发送到控制器操作,该控制器操作将映射回视图模型.例如,如果您有以下视图模型:
public class PersonViewModel
{
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并执行以下操作:
public ActionResult Foo(PersonViewModel person)
{
...
}
Run Code Online (Sandbox Code Playgroud)
在AJAX中调用它的传统方法是:
$.ajax({
url: '@Url.Action("foo")',
type: 'POST',
data: { name: 'john', age: 20 },
success: function(result) {
// TODO:
}
});
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC 3中,您可以发送一个JSON作为请求参数,该参数将绑定到PersonViewModel
action参数:
$.ajax({
url: '@Url.Action("foo")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ name: 'john', age: 20 }),
success: function(result) {
// TODO:
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16007 次 |
最近记录: |