请在此处查看达林的解决方案.. Converting HTML.EditorFor into a drop down (html.dropdownfor?)
我无法使下拉列表生效。请帮忙。谢谢。
我的ascx页面出现BC30203错误。
BC30203:预期的标识符。 (第4行 - 新[])..我应该用什么代替模型。我尝试使用实际的模型名称,可能是我的语法错误..此代码根据上面发布的解决方案链接进入编辑器模板...
代码:
<%= Html.DropDownList(
"",
new SelectList(
new[]
{
new { Value = "true", Text = "Yes" },
new { Value = "false", Text = "No" },
},
"Value",
"Text",
Model
)
) %>
答案 0 :(得分: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>