2011-10-26 32 views
0

我完全是MVC的新手。我想創建一個Viewbag來包含控件的選定索引。我可以在我的.ascx文件中設置它嗎?或者什麼是捕獲這些信息的最佳方式?ASP.Net MVC3 Viewbag - 設置爲dropdownbox的選定索引

<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。