2011-05-31 7 views
2

私のasp.net MVC 3プロジェクトで、私は会社に関連する連絡先を作成したいと思います。ASP.NET MVC 3 @ Html.DropDownList selectedValueを無視する

またはを直接作成するか、companyIdを渡す新しい連絡先を追加して、連絡先作成フォームのドロップダウンに既にその会社を設定することができます。

問題は、渡された会社をドロップダウンでデフォルトにすることができないことです。 ViewBag.CompanyIdヘクタール@

Global.asaxの

routes.MapRoute("contactCreate", "contact/toevoegen/{companyid}", new { action = "ContactCreate", controller = "Backend", companyid = UrlParameter.Optional }); 

コントローラメソッド

public ActionResult ContactCreate(int? companyid) 
{ 
    Contact contact = new Contact(); 

    ViewBag.StatusList = srep.getContactStatusses(); 

    ViewBag.CompanyId = companyid; 

    return View(contact); 
} 

ビュー

@model xxx.Models.Contact 

... 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.bedrijf_id) 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownListFor(model => model.bedrijf_id, new SelectList(ViewBag.Bedrijven, "bedrijf_id", "bedrijf_naam",ViewBag.CompanyId), "--Kies bedrijf--") 
      @ViewBag.CompanyId 
      @Html.ValidationMessageFor(model => model.bedrijf_id) 
     </div> 
... 

値です。

なぜ選択した値が設定されていないのでしょうか?

+0

ViewModelでSelectListを作成すると動作するようです... – tortuga

答えて

1

「DropDownListFor」を実行すると、モデルから渡された値が選択した値と一致するようになります。したがって、あなたの例では、選択された値として "bedrijf_id"が使用されます。選択した値がモデル外のものからのものであるように見えます。コメントから

は、私は次のように何をしたいことはただのDropDownListだと思う:

@Html.DropDownList("DropDownList", new SelectList((ViewBag.Bedrijven, "bedrijf_id", "bedrijf_naam", ViewBag.CompanyId), "--Kies bedrijf--") 

ホープ、このことができます。

関連する問題