我一直坚持这个问题。有人可以帮我解决这个错误。
在我提交表单之前,会显示以下UI。但是,单击“注册”按钮后,我应该被重定向到另一个页面。但是,我得到的是上一个视图的重叠版本(下面的外观屏幕)
提交注册视图后,页面显示如下:(您将能够看到前一个屏幕的一部分也嵌入到该视图中,这不是预期的结果)v-预期结果将显示<{1}}和页面上的ProfileOption
。
代码:
Copyright mark
AJAX在前端使用
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel acount)
{
return RedirectToAction("ProfileOption", "Acc");
}
[HttpGet]
public ActionResult ProfileOption()
{
return View("ProfileOption");
}
答案 0 :(得分:0)
从Json
操作返回View
而不是Register
:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel acount)
{
return Json(new { Success = true, RedirectUrl = "Url"});
}
jQuery
$.ajax({
url: "any url",
dataType: '',
contentType: "------",
success: function(response){
if(response.Success){
window.location.href = response.RedirectUrl;
}
}
});
或在这里查看我的答案
答案 1 :(得分:0)
您无法使用AJAX转到其他视图。您只能在当前视图中呈现HTML结果。
要导航到其他视图,您需要执行类似
的操作function submitdata() {
$('form').click(function() {
if (!$(this).valid()) {
return;
}
var token = $('[name=__RequestVerificationToken]').val();
$.ajax({
url: '@Url.Action("Register", "Acc")',
type: 'POST',
data: {
EMAIL: 'email@ss.ss',
PASSWORD: $('#pword').val(),
ConfirmPassword: $('#cpwd').val(),
__RequestVerificationToken: token
},
success: function (result) {
window.location.href = "http://stackoverflow.com";
}
});
return false;
});
}