2011-04-28 5 views
5

ドロップダウンとビューバックに問題があります。 (applicationGuid)、これは完璧に動作MVC 3 ViewBagで選択した値がドロップダウンする

 applicationGuid = new Guid(form["applicationList"]); 

     var applications = _applicationRepository.List(); 

     ViewBag.applicationList = new SelectList(applications, "Id", "Name", applicationGuid); 

とビューで、以前に選択した値を返します:私は私のコントローラに次のコードを使用してドロップダウンを設定しています

@Html.DropDownList("applicationList", "") 

は、今、私が使用したいですそれはビューに渡されていても(

@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" }) 

をが、何らかの理由で、選択した値がレンダリングされていないと私はできSE:私はドロップダウンにいくつかの属性を追加したいと、次のコードViewBag SelectList内の正しい項目に対して選択されたe = "true")。

(この1つは選択= "選択" している)として、上記の2つの例は、レンダリング:

<select id="applicationList" name="applicationList"><option value=""></option><option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select> 

などので、(選択が消えた!!):

<select class="required" id="applicationList" name="applicationList" rel="0"><option value=""></option><option value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select> 

誰が説明することができます私がここで間違っていること、そしてなぜそれが選択された価値を失っているのか?私はビューのデータ項目の名前がどのように衝突することができないかに入るいくつかのポストを見つけましたが、私はランダムな名前でこれを取り除きましたが、何も動作していないようです!これはMVC3の問題ですか?

答えて

14

Html.DropDownList()にパラメータとしてSelectListを渡すと、実際のドロップダウンリストと同じ名前を持つのが嫌いであるようです。

コードをコピーしたときと同じ問題が発生しました。

しかし、すぐに、私はそれが動作し、出力生成

@Html.DropDownList("applicationListX", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" }) 

@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" }) 

を変更するよう:

<select class="required" id="applicationListX" name="applicationListX" rel="0"><option value=""></option> 
<option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option> 
<option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option> 
</select> 

を、私はそれはケースだ理由を知っているが、そこにいませんあなたの回避策。

+0

カーソンの返信をありがとう。私はこれをすでに試してきましたが、それは私にとってはうまくいかなかったのです。ちょうどもう一度やってみましたが、同じ出力です。私があなたとは違うやり方をしているか分かりません。 – user728848

+0

これを忘れて....これはうまくいく!!私が名前を変更したとき、私はこれをしたコードを変更するのを忘れていました:if(form ["applicationListX"]!= "" && form ["applicationListX"]!= null)applicationGuid = new Guid(form ["applicationListX "]);私は自分の価値を失っていました!ご協力いただきありがとうございます。 – user728848

+0

ありがとう!今は完璧に動作します。私はこれをバグと宣言します... – dampee

関連する問題