Her biri kısmi olarak birden çok form içeren bir sayfam var. Her kısmi göndermek istiyorum. Hatalar varsa, doğrulama hatalarının ana sayfanın bir parçası olarak kısmi olarak gösterilmesini istiyorum. Hatalar varsa, sadece kendi sayfasındaki kısmi görmek istemiyorum. Bu davranışın sadece ajax postasıyla mümkün olduğunu söyleyerek düzeliyorum mu? Model durumu hatalarını ajax postasından, normal form gönderisinden nasıl iade edebilirim?Ana sayfada hatalarla birlikte mv kısmi görünümü görüntüleme
Düzenleme: Hala
Kısmi o kendi sayfasında kısmi görme -
@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { id = "LoginForm" }))
{
@Html.ValidationMessage("InvalidUserNamePassword")
<fieldset class="fieldset">
<div>
<label for="form-field-user_id">User ID</label>
<span>
@Html.TextBoxFor(x => x.Username, new { @class = "form-field__input form-field__input--text", @id = "form-field-user_id"})
</span>
</div>
</fieldset>
<div class="form-field__button">
<button id="loginButton" type="submit" class="button button--primary">Login</button>
</div>
}
<script>
$('#loginButton').click(function() {
$.ajax({
type: "POST",
url: '@Url.Action("Login", "Account")',
data: $('form').serialize(),
success: function (result) {
if (result.redirectTo) {
window.location.href = result.redirectTo;
} else {
$("#LoginForm").html(result);
}
},
error: function() {
$("#LoginForm").html(result);
}
});
});
</script>
Denetleyici -
[HttpPost]
public ActionResult Login(LoginModel model)
{
if (!ModelState.IsValid)
{
return PartialView("~/Views/Account/_Login.cshtml", model);
}
return Json(new { redirectTo = Url.Action("Index", "Profile") });
}
Ana sayfadaki model durumu hatalarını kısmi parçalardan ayırmak istersiniz? – lazy
Yalnızca formun kısmi görünümünü döndürürseniz ve orijinal formu ajax başarı geri bildirimi içinde döndürülen html ile değiştirin –
Model durumu hatalarını istiyorum. kısmi, bu t kısmi, formu göndermeden önce olduğu gibi ana sayfada gösterilmelidir, kendi değil –