DropDownListFor
페이지 제출시 기본 옵션을 사용할 때 유효성 검사 오류 메시지가 표시되지 않습니다. 페이지를 제출할 수는 있지만 오류를 던지지는 않습니다. 드롭 다운 목록을 제외한 다른 유효성 검사 메시지가 표시됩니다.dropdownlistfor가 오류 메시지를 표시하지 않습니다.
public class CallLogViewModel
{
[Required(ErrorMessage = "please select")]
[Display(Name = "Details of Issue/Incident")]
public IEnumerable<IssueCategory> IssueDetails { get; set; }
public int SelectedIssue { get; set; }
public CallLogViewModel()
{
HomeRepository hr = new HomeRepository();
IssueDetails = hr.GetIssueCategories();//gets the list
}
}
public class IssueCategory
{
public int UniqueId { get; set; }
public string Issue { get; set; }
}
Controller.cs
public ActionResult Index()
{
var viewModel = new CallLogViewModel();
return View(viewModel);
}
보기 당신은 당신의 결합을하지 재산의 SelectList
에 ValidationMessageFor()
을 적용
<div class="form-group">
@Html.LabelFor(model => model.IssueDetails, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.DropDownListFor(model => model.SelectedIssue, new SelectList(Model.IssueDetails, "UniqueId", "Issue", Model.SelectedIssue), "Please Select",new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.IssueDetails,"", new { @class = "text-danger" })
</div>
</div>
의 Web.config
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
게시물을 가져 주셔서 감사합니다. 잘 작동합니다. 잠깐 질문을 드리 자면, 드롭 다운 목록 항목은 uniqueid를 가진 데이터베이스 테이블 Issuecategory에 나열된 항목이어야하고 열로 발행되어야합니다. 그래서 방금 사용했습니다. 그것은 selectlistitem 잘 작동하지만 왜 우리 iterumerable의 일환으로 Datatable IssueCategory를 사용할 수 없다 – ChinnaR
selectlistitem 또는 issuecategory 클래스를 ienumerable로 사용하여 모범 사례를 제안 해 주시겠습니까? 그리고 왜? – ChinnaR
당신은 할 수 있지만, 더 나은 방법은'public IEnumerable IssueDetails {get; 세트; }'를 사용하여 GET 메소드에서 설정하십시오. (예 :'Model.IssueDetails = hr.GetIssueCategories(), UniqueId ","Issue ");'(또는'model.IssueDetails = hr.GetIssueCategories()) .Select (x => 새로운 SelectListItem (값 = x.UniqueId.ToString(), Text = x.Issue})); –