2010-07-04 152 views
0

在我的控制,我根據我傳遞給下拉幫手的SelectList:asp.net的MVC HTML下拉列表幫手不選擇選項

<%= Html.DropDownList("abc123", Model.SomeList) %> 

我看看查詢字符串的值,這是援助。

我然後依次通過在選擇列表的,並且如果所有項目它等於ID,我做的:

item.Selected = true; 

控制器動作然後轉到此的SelectList到視圖,然後到HTML幫手。

在調試模式下,我可以看到該值設置爲true,但是html呈現沒有選擇該項目。

問題是什麼?

+0

在視圖中,暫時註釋掉下拉列表,循環訪問Model.SomeList並確認右邊的項目是「已選中」。 – 2010-07-04 18:13:18

+0

您能否顯示執行您在文章中描述的步驟的控制器操作? – 2010-07-04 19:13:22

回答

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

+0

感謝它在selectList的構造函數中傳遞selectedValue時的工作原理。 – Blankman 2010-07-04 20:45:23