【发布时间】:2013-03-20 19:13:17
【问题描述】:
我正在使用 MVC 4,我正在尝试发送一个发布请求,并且我从我的控制器获得了成功的返回,结果视图采用 HTML 形式,但我不知道当时该怎么处理它.
JS
$("form").submit(function (e) {
e.preventDefault();
if ($(this).valid()) {
$.ajax({
url: submitUrl, type: "POST", traditional: true,
data: { EventName: 'Name of event'},
success: function(data){
$("#content").html(data);
}
})
}
});
我的控制器
[HttpPost]
public ActionResult CreateEvent(EventModel model)
{
if(ModelState.IsValid)
{
return RedirectToAction("Index");
}
else
{
return View(model);
}
}
所以你可以看到我的控制器要么返回一个视图,要么返回一个 RedirectToAction。在我的 ajax 调用的成功回调中,我正在执行以下操作: $("#content").html(data); 但似乎什么也没有发生。有人可以帮助我正确处理控制器操作的返回。
非常感谢!
【问题讨论】:
-
您应该返回一个 JSON 示例:{"me": "its ok"} 在您的“成功”中应该解析并显示消息。
-
您可以使用 Window.location 的 javascript 进行重定向,就像您在服务器端所做的那样。将成功标志返回给客户端,让他选择路径
-
嗨约翰,对不起,我不太明白你的说法。我应该从我的控制器返回 Json(View(model)) 并让我的 Javascript 保持原样吗?谢谢。
-
嗨,Devesh,我想过,但我可能需要对模型进行服务器验证并返回“视图(模型)”,所以我想查看修改后的模型。跨度>
-
首先你要定义你要返回什么,你可以举个例子说明返回什么?
标签: javascript asp.net-mvc jquery asp.net-mvc-4