클라이언트 쪽에서 원격 유효성 검사를 통해 사용자 이름의 유효성을 검사하려고했는데 모듈 작성에 중복 필드를 추가하는 동안 제대로 작동하지만 이제는 동일한 이름을 사용하여 레코드를 편집 할 수 없습니다 그것은 나에게 내가 정의한 동일한 오류를 보여주고있다. 가능한 모든 방법을 시도했지만 성공하지 못했습니다. 나는이 링크를 따라 갔지만 어느쪽으로도 작동하지 않는다.mvc 영향 원격 편집
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>
}
전문가의 도움을 받아 과제를 완료하십시오.
편집을 위해 여전히 같은 오류가 발생합니다. 해당 레코드를 편집 할 수 없습니다. –
그런 다음 다른 일이 발생합니다. 그리고 그 레코드를 편집 할 수 없다는 것은 무엇을 의미합니까? 원격 특성은 유효성 검사에 실패하면 오류 메시지를 표시합니다. 사용자가 편집을 못하게하지는 않습니다. –
'UserName'과'InitialUserName' 값이 정확하고 예상대로입니까? –