0
我非常新的JavaScript和jQuery。驗證jQueryUI的模式窗體保持模型數據註釋
我按照這個線程建議代碼:Validate JQuery UI modal form within another form in MVC 4創建使用數據註釋驗證模式窗體。
它正常工作與驗證,但是當我正確填寫表格並儘量保存信息並關閉它,這樣可以節省,但該對話框不會關閉,並保持這種方式,直到我刷新頁面。
下面是我的形式編碼:
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "POST", UpdateTargetId ="editDialog", OnSuccess = "editSucces" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Editar Usuário</legend>
<div class="display-field">
@Html.EditorFor(model => model.IdUsuario, new { id = "idUsuario"})
</div>
Nome
<div class="editor-field">
@Html.EditorFor(model => model.Nome, new { id = "nomeUsuario"})
<br />
@Html.ValidationMessageFor(model => model.Nome)
</div>
E-mail/Login
<div class="editor-field">
@Html.EditorFor(model => model.Login, new { id = "loginUsuario"})
<br />
@Html.ValidationMessageFor(model => model.Login)
</div>
Senha
<div class="editor-field">
@Html.EditorFor(model => model.Senha, new { id = "senhaUsuario"})
<br />
@Html.ValidationMessageFor(model => model.Senha)
</div>
<p>
<input type="submit" value="Confirmar" />
</p>
</fieldset>
<div>
@Html.ActionLink("Cancelar", "Index")
</div>
}
這是我的控制器操作:
public ActionResult Edit(Usuario usuario, string confsenha)
{
if (usuario.Senha == confsenha)
{
usuario.DataCadastro = DateTime.Now;
if (ModelState.IsValid)
{
db.Entry(usuario).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
if (Request.IsAjaxRequest())
{
return PartialView("_Edit", usuario);
}
return View(usuario);
}
}
,這是我的javascript調用:
$(function() {
$('.openDialog').click(function() {
$.ajax({
url: this.href,
type: 'GET',
cache: false,
data: { idUsuario: $('#idUsuario').val() },
success: function (result) {
$('#result').html(result).dialog('open');
}
});
return false;
});
$('#result').dialog({
autoOpen: false,
modal: true,
closeOnEscape: false
});
});
function editSucces(result) {
if (result.value) {
$('#result').dialog('close');
window.location.href = '/usuario/index';
} else {
$('#result').html(result);
}
}
運行它,我看到它永遠不會輸入這部分的javascript代碼:
if (result.value) {
$('#result').dialog('close');
window.location.href = '/usuario/index';
}
如此,它從來就沒有到它應該關閉該對話框的一部分。有誰知道爲什麼會發生這種情況?或者result.value
應該傳遞什麼?
如果有人可以幫忙,謝謝。