Render a View after an AJAX call in asp.net MVC
我正试图在ajax调用后加载视图。 在ajax调用之后,我的action方法将返回一个
AJAX我正在使用
function PostMethods(url, fname, lname, email) {
1
2
3
4
5
6
7
8
9
10
11 var userRegisterViewModel = {
FirstName: fname,
LastName: lname,
Email: email
};
$.ajax({
type: 'Post',
dataType:"json",
url: url,
contentType: 'application/json',
data: JSON.stringify(userRegisterViewModel),//Success and error code
1 });}BLOCKQUOTE>
我的ajax调用api方法,我传递
fname ,lname 和view ,它将返回一条错误消息,我可以在当前视图中向用户显示该消息。 在当前视图的HTML中有一个空来显示错误消息。 我的行动方法是:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public ActionResult RegisterAndLogin(UserRegisterViewModel model)
{
ActionResult returnNextPage = null;
bool successToStoreData = SomeMethod(model);
if (successToStoreData)
{
returnNextPage = RedirectToAction(string.Empty,"Home");
}
else
{
//Text message to show to the user
}
return returnNextPage;
}在AXAJ和action方法中我应该写什么代码来做这件事
AJAX调用保持在同一页面上,因此RedirectToAction不起作用。 例如,您需要修改控制器以返回JSON
1
2
3
4
5
6
7
8
9
10
11
12
13 [HttpPost]
public JsonResult RegisterAndLogin(UserRegisterViewModel model)
{
bool successToStoreData = SomeMethod(model);
if (successToStoreData)
{
return null; // indicates success
}
else
{
return Json("Your error message");
}
}并修改AJAX功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $.ajax({
type: 'Post',
dataType:"json",
url: url,
contentType: 'application/json',
data: JSON.stringify(userRegisterViewModel),
success: function(message) {
if (message) {
$('yourSpanSelector').text(message); // display the error message in the span tag
} else {
window.location.href='/YourController/YourAction' // redirect to another page
}
}
})