2012-04-11 24 views
0

私のAddcarビューで私は私のデータベース(テーブルCar)にデータを挿入するフォームを許可しています。外部キーを使用してテーブルに挿入しますか?

テーブルCar私は Categorieテーブルに関連する外来キーです。

私のフォームに追加するには、ドロップダウンリストを用意して、追加したい車のカテゴリを選択できるようにする必要があります。

これは私のビューの一部である:これは私のコントローラのアクションが

   <div class="editor-label"> 
    <p> 
     <%: Html.LabelFor(model => model.Idcat) %> 
    </p> 
    </div> 
    <div class="editor-field"> 
    <p> 
    <!-- in this dropDownList i want to show the all Name Of Marque in my forgien table and user when he select value wil be set at id of selected marque --> 
     <%: Html.DropDownListFor(model => model.Idcat, ViewBag.cat as SelectList)%> 
     <%: Html.ValidationMessageFor(model => model.Idcat) %> 
    </p> 
    </div> 

です:

 public ActionResult addcar() 
    { 

     ViewBag.cat = new SelectList(entity.categorie, "Idcat", "Nom"); 

     return View(); 
    } 

私は彼がこのラインでの私は、このエラーThere is no ViewData item of type 'IEnumerable <SelectListItem>' with key 'Idcat'.を示して作成上のCLICまで、この作業罰金<%: Html.DropDownListFor(model => model.Idcat, ViewBag.cat as SelectList)%>

+0

私の投稿を更新しました。確認してください。 – Chlebta

答えて

0

ASP.Net MusicStoreチュートリアルには、特定のジャンルのジャンルから選択する例があります。ジャンルのリストは、コントローラによって満たされているviewbagを経由してビューに渡されます。

MusicStore Tutorial

これは、あなたが探しているまさにおそらくです。

+0

彼はList Pre Definded Listを使用していますが、あまり明確ではありません。 – Chlebta

+0

このチュートリアルは非常に明確です。 「ViewBagを使用してビューに情報を渡す」と「HTMLビューアを使ってビューを作成する」を参照してください。あなたのケースでは、コントローラ内のすべての利用可能なマルクスを取得し、それをビューに渡し、そのリストからリストを構築する必要があります。これが必要なものでない場合は、より具体的にしてください。 –

+0

I'cantは複数のモデルを私のビューに渡し、私のビューはすでにModels.Carsを使用していますので、i'cantに別のモデルを渡します。 – Chlebta

0

モデルバインディングは実際には個々の要素をバインドするだけです。だから、Idmarqueをうまく束縛している。可能な値のドロップダウンリストを表示するのに役立つものではありません。私には、フレームワークで何か不足しているように思えます。なぜなら、EditorForModelの使用を止めるからです。ドロップダウンリストをどのように処理するかを決める必要があります。あなたは、データベースを照会し、オプションのリストを描画するHTMLヘルパーを持っていて大丈夫ですか?あるいは、コントローラがオプションのリストを取得し、それをビューモデルの一部としてビューに渡すためのモデルメソッドを呼び出させたいのですか?おそらくデータアダーを渡すことを避けたいのですが、これを行うと接続の問題が発生する可能性があります。

関連する問題