2009-09-14 4 views
1

간단한 asp.net mvc 폼에 간단한 유효성 검사를 추가하려고하는데 .input 유효성 검사 오류 클래스를 입력에 추가하는 데 문제가 있습니다. . validation-summary-errors 및 .field-validation-error는 정상적으로 작동합니다. 도와 주셔서 미리 감사드립니다.보기에서 입력에 유효성 검사 오류 클래스가 추가되지 않았습니다.

편집 : 모두의 도움에 감사드립니다.

ModelState.SetModelValue("txtEmailOrDealerID", collection.ToValueProvider()["txtEmailOrDealerID"]); 

보기 :

<%using (Html.BeginForm("DealerLogin", "Home", FormMethod.Post)) 
    { %> 
    <fieldset> 
     <legend>Dealer Login</legend> 
     <div class="row"> 
      <%=Html.Label("txtEmailOrDealerID", "E-Mail Or Dealer ID:")%> 
      <%=Html.TextBox("txtEmailOrDealerID")%> 
      <%=Html.ValidationMessage("txtEmailOrDealerID", "*")%> 
     </div> 
     <div class="row"> 
      <%=Html.Label("txtPassword", "Password:")%> 
      <%=Html.Password("txtPassword")%> 
      <%=Html.ValidationMessage("txtPassword", "*")%> 
     </div> 
     <div class="centerbutton"> 
      <input type="submit" id="btnSubmitDealer" value="Login"/> 
     </div> 
    </fieldset> 
<%} %> 

감사관 :

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult DealerLogin(FormCollection collection) 
{ 
    if (string.IsNullOrEmpty(collection["txtEmailOrDealerID"].Trim())) 
     ModelState.AddModelError("txtEmailOrDealerID", "E-Mail Address or Dealer ID is required."); 
    if (string.IsNullOrEmpty(collection["txtPassword"].Trim())) 
     ModelState.AddModelError("txtPassword", "Password is required."); 
    if (ModelState.IsValid) 
     return Redirect("~/MyUploads"); 
    else 
     return View("Index"); 
} 

CSS의 :

/*Validation*/ 
.field-validation-error{color: #ff0000;} 
.input-validation-error{border: 1px solid #ff0000; background-color: #ffeeee;} 
.validation-summary-errors{color: #ff0000;} 
나는 오류를 방지하기 위해 컨트롤러에이 줄을 추가했다

HTML.Label 확장 방법 :

public static string Label(this HtmlHelper helper, string forControl, string text) 
{ 
    return String.Format("<label for='{0}'>{1}</label>", forControl, text); 
} 

답변

2

머리 위로부터 AddModelError id 매개 변수는 입력 ID와 일치해야합니다. 따라서 귀하의 경우에는 다음과 같이 변경해야합니다 :

ModelState.AddModelError("txtEmailOrDealerID", "E-Mail Address or Dealer ID is required.");  
관련 문제