ASP.Net MVC3 Viewbag - установить выбранный индекс выпадающего списка - PullRequest
0 голосов
/ 27 октября 2011

Я совершенно новичок в MVC.Я хотел бы создать Viewbag, чтобы содержать выбранный индекс элемента управления.Могу ли я установить это в моем файле .ascx?или каков будет лучший способ получить эту информацию?

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

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Ты делаешь трудный путь.В вашем контроллере выполните следующие действия:

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 голосов
/ 27 октября 2011

Полагаю, у вас там есть форма.Установите ViewBag в коде действия контроллера после отправки формы.

...