私は今この問題に悩まされており、オンラインで何かを見つけることができません。Asp.Net MVC 5 Html.DropDownListが検証されていません
私はエディタテンプレートにHtml.DropDownListを持っています。私は自分のフォームでそのテンプレートを使用し、ドロップダウンリストには何も選択しないでください。送信をクリックすると、必要なドロップダウンリストに値が選択されていないことを通知するフォームが表示されますが、表示されません。私は間違って何をしていますか?ここで
public class RequestCreateViewModel
{
public int ID { get; set; }
public TesterLocationCreateViewModel TesterLocationCreateViewModel { get; set; }
....
public RequestCreateViewModel()
{
}
}
public class TesterLocationCreateViewModel
{
public int ID { get; set; }
[Required]
[UIHint("OEM")]
public string OEM { get; set; }
[Required]
[DisplayName("City")]
public string LocationCity { get; set; }
public TesterLocationCreateViewModel()
{
}
}
はここTesterLocationCreateViewModel.cshtml(編集テンプレート)ですCreate.cshtml
@model WdcTesterManager.Models.Request
@{
ViewBag.Title = "Create Request";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create Request</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.EditorFor(model => model.TesterLocationCreateViewModel)
</div>
</div>
}
の抜粋です:
@model WdcTesterManager.Models.TesterLocationCreateViewModel
<div class="col-md-6">
<h4>Tester Location</h4>
<div class="container-fluid">
<div class="form-group">
@Html.LabelFor(model => model.OEM, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@Html.DropDownList("OEM", (SelectList)ViewBag.OemList, "Choose one", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.OEM, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.LocationCity, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@Html.EditorFor(model => model.LocationCity, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.LocationCity, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
ここ
は、ビューモデルです私は何も記入せずに書類を提出する、私は市のための検証エラーを得るが、何もないOEM。何か案は?
は、あなたが 'TesterLocationCreateViewModel'を使用して表示か?この場合、 '[Required]'属性も必要になります。 –
ええ、それはそのビューモデルを使用しています。私はちょうど[必須]を追加しましたが、助けにはなりませんでした:/ – AndeeC
うーん、 '[UIHint]'なしでビューモデルを使用している場合、 'EditorFor()'は決してドロップダウンリストを生成しないので、 –