【发布时间】:2011-02-13 03:15:14
【问题描述】:
我有一个简单的问题。 要通过 jQuery 调用动作(使用 AJAX),我是否必须创建一个返回 json 类型的新动作,或者无论如何也要对 http 请求(发布)和 jQuery 使用相同的动作?
谢谢
【问题讨论】:
标签: jquery asp.net-mvc action
我有一个简单的问题。 要通过 jQuery 调用动作(使用 AJAX),我是否必须创建一个返回 json 类型的新动作,或者无论如何也要对 http 请求(发布)和 jQuery 使用相同的动作?
谢谢
【问题讨论】:
标签: jquery asp.net-mvc action
这取决于你想对返回的数据做什么。
说,你的action返回Html,使用jQuery,你可以把从服务器返回的html:
$.ajax('/url/', function(data){
$('#elementID').html(data);
})
或者,您可以使用 jQuery .load() 方法:
$('#elementID').load('/url');
如果您的操作返回 redirect,并且您希望客户端页面重定向到 url,那么是的,您需要创建一个将返回 Json 的新操作:
public JsonResult SomeAction()
{
return Json(new {redirect = true, url = "/Path/ToRedirect"});
}
并使用 jQuery:
$.ajax('/url/', function(data){
if(data.redirect) {
window.location = data.url;
};
})
【讨论】:
您可以使用相同的操作:
$.post(
'/controller/action',
{ field_a: "Value a", field_b: "Value b" },
function(data) {
$('#result').html(data);
}
);
使用 ajax,您通常希望 partial views 或 json 作为返回值。 普通帖子,完整的 html 页面。为什么要在 ajax 和常规 post 中使用相同的操作?
【讨论】: