本文介绍了@ Html.ValidationSummary()内Ajax.BeginForm不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有使用任何问题 @ Html.ValidationSummary()
的 Ajax.BeginForm
表单中?
Is there any problem using @Html.ValidationSummary()
inside an Ajax.BeginForm
form?
我有以下情形,我不能为必填字段得到验证。该表格是刚刚发布,并没有错误或者异常。
I have the following scenario and I can't get validation for required fields. The form is just posted and no error is thrown either.
这是视图:
@using (Ajax.BeginForm("Register", "Account", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog('RegistroUsuario')" }))
{
@Html.ValidationSummary()
<fieldset>
<legend>Cadastro novo Usuário</legend>
<table id="changePassword">
<tr>
<td class="smallField">Username:</td>
<td>@Html.TextBoxFor(m => m.UserName)</td>
</tr>
<tr>
<td>Password:</td>
<td>@Html.PasswordFor(m => m.Password)</td>
</tr>
<tr>
<td>Repetir Senha:</td>
<td>@Html.PasswordFor(m => m.ConfirmPassword)</td>
</tr>
<tr>
<td>Email:</td>
<td>@Html.TextBoxFor(m => m.Email)</td>
</tr>
<tr>
<td>Pergunta Secreta:</td>
<td>@Html.TextBoxFor(m => m.SecretQuestion)</td>
</tr>
<tr>
<td>Resposta:</td>
<td>@Html.TextBoxFor(m => m.SecretQuestionPassword)</td>
</tr>
<tr>
<td>Ativo:</td>
<td><input type="checkbox" name="status" id="status" value="Ativo"></td>
</tr>
</table>
</fieldset>
<input type="submit" value="Criar Usuário" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button-link"/>
}
That's控制器:
That´s the Controller:
//
// POST: /Account/Register
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
MembershipProvider mp = Membership.Provider;
MembershipCreateStatus Status;
// Tenta registrar o usuário
try
{
//Verifica se usuário deve estar ativo ou não no sistema
if (String.IsNullOrEmpty(Request.Form["status"]))
{
model.Active = false;
}
else
{
model.Active = true;
}
//Cria o usuário
MembershipUser newUser = mp.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretQuestionPassword, model.Active, Guid.NewGuid(), out Status);
if (newUser == null)
{
/**/
}
else
{
return RedirectToAction("Index", "Home");
}
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
和型号:
public class RegisterModel
{
[Required]
[Display(Name = "Usuário")]
public string UserName { get; set; }
[Required]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "A {0} deve ter no mínimo {2} caracteres.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Senha")]
public string Password { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Repetir Senha")]
[Compare("Password", ErrorMessage = "As senhas não coincidem")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Pergunta Secreta")]
public string SecretQuestion { get; set; }
[Required]
[StringLength(100, ErrorMessage = "A {0} deve ter no mínimo {2} caracteres.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Senha Pergunta Secreta")]
public string SecretQuestionPassword { get; set; }
[Required]
[Display(Name = "Ativo")]
public bool Active { get; set; }
}
我缺少somenthing?
Am I missing somenthing?
推荐答案
发现问题。
该Ajax.Options目标ID没有设置。一旦我设置为验证DOM元素现在我得到的消息。
The Ajax.Options target id was not set. Once I have set to the validation dom element now I get the messages.
非常感谢
这篇关于@ Html.ValidationSummary()内Ajax.BeginForm不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!