2011-10-26 8 views
0

私はMVCを全く新しくしました。私はコントロールの選択されたインデックスを含むViewbagを作成したいと思います。 .ascxファイル内で設定することはできますか?またはこの情報を取得する最良の方法は何ですか?ASP.Net MVC3 Viewbag - ドロップダウンボックスの選択されたインデックスに設定

<select id="accounttype" style="float: left;" autocomplete="off"> 
       <% 
        if (Request.Url.AbsolutePath.ToUpper().StartsWith("/COMMERCIAL")) //Commercial 
        { 
       %> 
       <option value="C" selected="selected">eManager+</option> 
       <option value="C">Retirement Plans</option> 
       <option value="C">Brokerage Accounts</option> 
       <% 
        } 
        else if (Request.Url.AbsolutePath.ToUpper().StartsWith("/BUSINESS")) //Business 
        { 
       %> 
       <option value="B" selected="selected">eManager+</option> 
       <option value="B">Business Credit Card</option> 
       <option value="B">Retirement Plans</option> 
       <option value="B">Brokerage Accounts</option> 
       <% 
        } 
        else //Personal, root or other 
        { 
       %> 
       <option value="P" selected="selected">Online Banking</option> 
       <option value="P">Health Savings Account</option> 
       <option value="P">Paychek Plus!&reg;</option> 
       <option value="P">Gift Cards</option> 
       <option value="P">Business Tax Manager</option> 
       <option value="P">Business Card Manager</option> 
       <option value="P">Business Credit Card</option> 
       <% 
        } 
       %> 
      </select> 

答えて

0

難しいことです。お使いのコントローラでは、この操作を行います。あなたのビューで、その後

if (Request.Url.AbsolutePath.ToUpper().StartsWith("/COMMERCIAL")) //Commercial 
{ 
    ViewBag.ListContents = new SelectList(new[] {new {name = "eManager+", value="C"}, 
     {name = "Retirement Plans", value="C"}, 
     {name = "Brokerage Accounts", value="C"}}, "value", "name"); 
} 
// similar for your other if statements as well 

ViewBag.DropDownID = selectedvalue; 

return View(); 

<% Html.DropDownListFor(m => m.DropDownID, ViewBag.ListContents); %> 

問題を、しかし、あなたが同じ値を持つ複数のエントリを持っているので、あなただけのコードで最初のものを選択することができるということです。あなたはそれぞれのユニークな値を与えてからポストすると、各カテゴリの値が決まるのが良いでしょう。

たとえば、値を "C1" "C2" "C3"に設定し、文字列がCではなくCで始まるかどうかを確認できます

0

あなたはそこにフォームがあるとします。フォームを投稿した後、コントローラのアクションコードにViewBagを設定します。

関連する問題