【问题标题】:Returning one of the two Partial View from Controller从控制器返回两个局部视图之一
【发布时间】:2017-04-19 12:19:22
【问题描述】:

在我看来,我正在渲染注册表单的部分视图:

<div class="col-md-8 regform">
            @Html.Partial("_RegistrationForm",Model)
        </div>

现在,当用户提交表单时,我使用 ajax 来调用控制器。控制器检查模式是否没有错误。如果有错误控制器返回带有模型的部分视图以进行注册。但如果没有错误,则控制器返回不同的局部视图。下面是我的 Ajx 调用:

 $("#registrationform").submit(function (e) {
               $.ajax({
                   type: "POST",
                   url: '/Members/Register/',
                   data: $("#registrationform").serialize(),
                   success: function (data) {
                       $('.regform').html(data);
                   }
               });

               e.preventDefault(); // avoid to execute the actual submit of the form.
           });

控制器

 if (!ModelState.IsValid)
            {
                model.CountryList = ISOCountryHelper.Instance.getAllCountries();
                model.StateList = new List<SelectListItem>();
                model.CityList = new List<SelectListItem>();
                return PartialView("_RegistrationForm",model);
            }

            //do other stuff
            model.UserCreated = true;
            return PartialView("_Notifications", model);

现在的问题是当模型中有错误时,视图工作正常显示错误和注册表单。但是,如果现在出现错误并且控制器返回 _Notification 部分视图,则 div 标签 regform 不会被“_Notification”部分视图替换。相反,部分视图出现在新页面中。我希望它在 div 标签 regform 的同一页面中呈现。 知道我在这里做错了什么。

谢谢

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-partialview


    【解决方案1】:

    检查不工作的局部视图顶部没有设置 Layout 属性,因为这会将其呈现为完整视图,而不是局部视图。您可以与确实有效的进行比较

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多