2012-03-05 67 views
0

請看這裏Darin的解決方案.. Converting HTML.EditorFor into a drop down (html.dropdownfor?)問題轉化editorfor爲DropDownList

我不能讓下拉列表的工作。請有任何幫助。謝謝。

我在我的ascx頁面收到BC30203錯誤。

BC30203:預期標識符。 (第4行 - 新[])..我用什麼來代替模型。我試圖把實際的型號名稱,可我得到的語法錯誤..這代碼根據上面張貼的解決方案鏈接出現在編輯模板...

代碼:

<%= Html.DropDownList(
    "", 
    new SelectList(
    new[] 
    { 
    new { Value = "true", Text = "Yes" }, 
    new { Value = "false", Text = "No" }, 
    }, 
    "Value", 
    "Text", 
    Model 
) 
) %> 
+0

你試過了嗎? [解決方案] [1] [1]:http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc-selectlist-to-work – tetuje 2012-03-05 14:19:24

回答

2

不知道爲什麼你得到這樣的錯誤,代碼應該工作。下面編輯模板工作對我來說完全沒有問題,我只是測試它:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<%= Html.DropDownList(
    "", 
    new SelectList(
     new SelectListItem[] 
     { 
      new SelectListItem { Value = "true", Text = "Yes" }, 
      new SelectListItem { Value = "false", Text = "No" } 
     }, 
     "Value", 
     "Text", 
     Model 
    ) 
) %> 

以下模型:

public class MyViewModel 
{ 
    [UIHint("YesNoDropDown")] 
    public bool IsActive { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel()); 
    } 
} 

和看法:

<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" 
%> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Home Page 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <%= Html.EditorFor(model => model.IsActive) %> 
</asp:Content> 
+0

從第一行開始說..它的語法錯誤.. <%@ Control Language =「C#」Inherits =「System.Web.Mvc.ViewUserControl」%> – ZVenue 2012-03-05 16:14:00

+0

@ZVenue,你把這個放在ASCX文件中嗎?在'〜/ Views/Shared/EditorTemplates/YesNoDropDown.ascx'?請注意,WebForms視圖引擎中的ASCX和ASPX有所不同。 – 2012-03-05 16:16:59

+0

在ascx文件中。這是正確的 – ZVenue 2012-03-05 16:23:41