在我看来,我正在为注册表单呈现部分视图:
<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的同一页面中呈现。 知道我在这里做错了什么。
由于
答案 0 :(得分:0)
检查不起作用的局部视图是否在其顶部没有设置Layout属性,因为这会将其呈现为完整视图而非局部视图。您可以与正在运作的那个进行比较