2011-10-26 3 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 в код действия контроллера после отправки формы.