在我的控制器中,我生成了一个SelectList,我将其传递给下拉助手:
<%= Html.DropDownList("abc123", Model.SomeList) %>
我查看了一个值的查询字符串,这是一个ID。
然后我遍历SelectList中的所有项目,如果它等于ID,我会这样做:
item.Selected = true;
然后,控制器操作将此SelectList传递给视图,然后传递给Html帮助程序。
在调试模式下,我可以看到值设置为true,但html呈现而不选择项目。
问题是什么?
答案 0 :(得分:2)
我不知道你做错了什么,因为你已经显示了0代码,但这肯定有效:
public ActionResult Index(int? id)
{
var model = new SelectList(new[]
{
new { Id = 1, Name = "item 1" },
new { Id = 2, Name = "item 2" },
}, "Id", "Name", id);
return View(model);
}
并在您看来:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SelectList>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.DropDownList("abc123", Model) %>
</asp:Content>
现在,如果您导航到/home/index/1
,则会选择第一个项目,如果您导航到/home/index/2
所选的第二个项目项目。
此外,如果您使用的是ASP.NET MVC 2.0,我建议使用强类型DropDownListFor
帮助程序而不是DropDownList
。
答案 1 :(得分:0)
这似乎是一个常见的MVC问题: