-1

MVC 3 での作業。

テキスト「男性」の場合は値「M」、テキスト「女性」の場合は「F」を性別に入力するドロップダウンリストがあります。

今、レコードを抽出すると、レコードの値に従って値が設定されません。

私は次のコードを視野に入れています。

@if(Model != null)
{
    @Html.DropDownListFor(model => model.GENDER, 
        new SelectList(ViewBag.gender, "Value", "key", Model.GENDER))
}
else
{
    @Html.DropDownListFor(model => model.GENDER, 
        new SelectList(ViewBag.gender, "Value", "Key"))
}

上記のコードは、ページが最初にロードされたとき、モデルが空であるため、性別フィールドの値がないことを意味します。リストを入力するだけで、人物が抽出されたとき、つまりモデルが null でない場合は、値が入力され、値が に等しく設定されますmodel.gender。しかし、それは値を設定していません。何が問題なのですか?

4

1 に答える 1

1

NULL オブジェクト (モデル) をビューに渡していますか? ビュー内のいくつの場所に書き込む@if(Model != null).. .かは、クリーン コードの概念を台無しにしないためのものです。?

これがあなたがそれを行う方法だと思います。初めて(エンティティの作成)または編集時間に関係なく、常にモデル/ビューモデルをビューに渡す必要があります。このようなもの

public ActionResult Create()
{
   CustomerViewModel model=new CustomerViewModel();
   return View(model);
}

Edit アクションの場合、Model/ViewModel オブジェクトにデータを入力します。

public ActionResult Edit(int id)
{
   CustomerViewModel model=new CustomerViewModel();
   model=CustomerService.GetCustomerFromId(id);
   return View(model);
}

ビューでは、次のように使用します

@model CustomerViewModel

@Html.DropDownListFor(model => model.GENDER, 
        new SelectList(ViewBag.gender, "Value", "key", Model.GENDER))
于 2012-05-24T13:20:03.693 に答える