MVC应用程序中的视图重叠

时间:2016-12-22 09:13:30

标签: c# asp.net-mvc razor

我一直坚持这个问题。有人可以帮我解决这个错误。

在我提交表单之前,会显示以下UI。但是,单击“注册”按钮后,我应该被重定向到另一个页面。但是,我得到的是上一个视图的重叠版本(下面的外观屏幕)

enter image description here

提交注册视图后,页面显示如下:(您将能够看到前一个屏幕的一部分也嵌入到该视图中,这不是预期的结果)v-预期结​​果将显示<{1}}和页面上的ProfileOption

enter image description here

代码:

Copyright mark

AJAX在前端使用

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel acount)
{
    return RedirectToAction("ProfileOption", "Acc");
}

[HttpGet]
public ActionResult ProfileOption()
{
    return View("ProfileOption");
}

2 个答案:

答案 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;
    }
  }
});

或在这里查看我的答案

Redirect to action with JsonResult

答案 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; 
    });
}