将的编辑器转换为下拉列表时出现问题



请在此处查看Darin的解决方案。。将HTML.EditorFor转换为下拉菜单(HTML.dropdownfor?)

我无法使下拉列表起作用。有什么能帮忙的吗。非常感谢。

我的ascx页面中出现BC30203错误。

BC30203:需要标识符。(第4行-新[])。。我用什么代替模型。我试着输入实际的模型名称,可能是我语法错误了。。这段代码根据上面发布的解决方案链接进入编辑器模板。。。

代码:

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

不知道为什么会出现这样的错误,代码应该可以工作。以下编辑器模板对我来说非常好,我刚刚测试过:

<%@ 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>

最新更新