Html.ValidationSummary에 문제가 있습니다. ValidationSummary에 속성 오류를 표시하고 싶지 않습니다. 그리고 Html.ValidationSummary (true)를 설정하면 ModelState의 오류 메시지가 표시되지 않습니다. 문자열에 대한 컨트롤러 동작에 예외가있는 경우
MembersManager.RegisterMember(member);
catch 섹션은 ModelState에 오류를 추가합니다.
ModelState.AddModelError("error", ex.Message);
그러나 ValidationSummary는이 오류 메시지를 표시하지 않습니다. Html.ValidationSummary (false)를 설정하면 모든 메시지가 표시되지만 속성 오류를 표시하고 싶지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?
사용중인 코드는 다음과 같습니다.
모델:
public class Member
{
[Required(ErrorMessage = "*")]
[DisplayName("Login:")]
public string Login { get; set; }
[Required(ErrorMessage = "*")]
[DataType(DataType.Password)]
[DisplayName("Password:")]
public string Password { get; set; }
[Required(ErrorMessage = "*")]
[DataType(DataType.Password)]
[DisplayName("Confirm Password:")]
public string ConfirmPassword { get; set; }
}
제어 장치:
[HttpPost]
public ActionResult Register(Member member)
{
try
{
if (!ModelState.IsValid)
return View();
MembersManager.RegisterMember(member);
}
catch (Exception ex)
{
ModelState.AddModelError("error", ex.Message);
return View(member);
}
}
전망:
<% using (Html.BeginForm("Register", "Members", FormMethod.Post,
new { enctype = "multipart/form-data" })) {%>
<p>
<%= Html.LabelFor(model => model.Login)%>
<%= Html.TextBoxFor(model => model.Login)%>
<%= Html.ValidationMessageFor(model => model.Login)%>
</p>
<p>
<%= Html.LabelFor(model => model.Password)%>
<%= Html.PasswordFor(model => model.Password)%>
<%= Html.ValidationMessageFor(model => model.Password)%>
</p>
<p>
<%= Html.LabelFor(model => model.ConfirmPassword)%>
<%= Html.PasswordFor(model => model.ConfirmPassword)%>
<%= Html.ValidationMessageFor(model => model.ConfirmPassword)%>
</p>
<div>
<input type="submit" value="Create" />
</div>
<%= Html.ValidationSummary(true)%>
<% } %>