На мой взгляд, я делаю частичный вид для регистрационной формы:
<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 не заменяется частичным представлением «_Notification». Вместо этого частичное представление появляется на новой странице. Я хочу, чтобы он отображался на той же странице в regform тега div. Любая идея, что я делаю здесь неправильно.
Спасибо