0
當!ModelState.IsValid
時,是否可以更改另一個元素上的類?當ModelState無效時操作其他元素
我的看法,下面的簡化,將有<div class="control">
纏每個<input>
場
@using(Html.BeginForm("AddRole","Admin", FormMethod.Post, new { @class = "ajax" })) {
<div class="control">
@Html.TextBoxFor(x => x.Role, new { @class = "input-xlarge", @placeholder = Html.DisplayNameFor(x => x.Role)})
@Html.ValidationMessageFor(x => x.Role)
</div>
}
$(function() {
$('form.ajax').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
if (result.success) {
location.reload(true);
} else {
$(this).html(result);
}
}
});
return false;
});
});
和我的控制器......
[HttpPost]
public ActionResult AddRole(RoleModel model) {
if(!ModelState.IsValid) {
return PartialView("_AddRolePartial", model);
}
try {
System.Web.Security.Roles.CreateRole(model.Role);
return Json(new {success = true});
} catch(Exception) {
ModelState.AddModelError("", "Role creation unsuccessful.");
}
return PartialView("_AddRolePartial", model);
}
我希望能夠對類error
添加到div.control
適用於模型中無效的任何屬性。我想我可以在ajax成功事件中通過jQuery處理這個問題,但也許有更好的解決方案。