【发布时间】:2015-01-29 15:27:30
【问题描述】:
我试图通过客户端的远程验证来验证用户名,并且在创建模块中添加重复字段时它工作正常但现在它不允许我使用相同的名称编辑记录它向我显示相同的错误我为创建定义的。我尝试了所有可能的方法,但没有成功,请帮助我。我已经关注了这些链接,但它不能以任何一种方式工作。
http://stackoverflow.com/questions/4778151/asp-net-mvc-3-remote-validation-to-allow-original-value http://stackoverflow.com/questions/6407096/asp-net-mvc-3-remote-attribute-passing-3-fields
这是我迄今为止尝试过的代码。请帮助专家。
[Required]
[Remote("IsUserAvailable", "User", HttpMethod = "Post", ErrorMessage = "User already exist.", AdditionalFields = "InitialUserName")]
[RegularExpression(@"^(?![\W_]+$)(?!\d+$)[a-zA-Z0-9 ]+$", ErrorMessage = "Invalid UserName ")]
public string UserName { get; set; }
[HttpPost]
public JsonResult IsUserAvailable([Bind(Prefix = "User.UserName")]string UserName, string initialUserName)
{
var result = uDbContext.Users.FirstOrDefault(a => a.UserName == UserName);
if (result == null)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(JsonRequestBehavior.AllowGet);
}
@model User.ViewModel.ViewModelUser
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(m => m.User.UserId)
@Html.LabelFor(m.User.UserName)
@Html.TextBoxFor(m => m.User.UserName)
@Html.ValidationMessageFor(m.User.UserName)
@Html.Hidden("initialUserName", Model.User)
</div>
</div>
}
请帮助专家完成我的任务。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 validation