0

我对 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>
4

2 回答 2

0

我假设你在那里有一个表格。发布表单后,在控制器的操作代码中设置 ViewBag。

于 2011-10-26T20:25:57.207 回答
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

于 2011-10-26T20:45:44.837 回答