Webアプリケーションに登録ビューがあります。ただし、アカウント登録が失敗し、ドロップダウンメニューが赤で表示されます。ここで無効なモデル状態を引き起こすドロップダウンメニュー。 ASP.NET MVC 3
はコードダウン私のドロップである:ここでは
<div class="editor-label">
@Html.LabelFor(model => model.CompanyId, "Company")
</div>
<div class="editor-field">
@Html.DropDownList("Companies", "<Select Company>")
</div>
は、ビューモデルの私の関連するコードです:私は、ビューを返す前に、ここで
[Display(Name = "Company")]
public int? CompanyId { get; set; }
public IEnumerable<SelectListItem> Companies { get; set; }
は、コントローラの私の関連するコードです:
ViewBag.Companies = new SelectList(db.Companies, "CompanyId", "CompanyName");
私がデバッグすると、ModelState.IsValid
はfalseを返し、したがってtを返します彼は(私の場合はViewBag.Companies
を再設定して)表示します。
登録を成功させるにはどうすればよいですか?私はパラメータ内の各必須フィールドに記入します。会社を選択する必要はありません。 会社を選択しなかった場合、ModelState.IsValid
はtrueを返し、コードを実行します。しかし、私はユーザーに、彼の会社に関連付けるオプションを持たせたいと思います。
ありがとうございました。
'ModelState'のエラーは何ですか?エラーは 'ModelState.Values'の' Errors'コレクションになければなりません。 – nemesv
{System.InvalidOperationException: 'System.Web.Mvc.SelectListItem'型へのパラメータ 'System.String'から 'System.Web.Mvc.SelectListItem'へのパラメータ変換は、型変換器がこれらの型間で変換できないため失敗しました。 at System.Web.Mvc.ValueProviderResult.ConvertSimpleType(CultureInfoカルチャ、オブジェクト値、タイプdestinationType) –
@nemesv ^^私は今これを調べています。 'public string CompanyId'の場合は –