Проблемы при конвертации редактора в выпадающий список - PullRequest
0 голосов
/ 05 марта 2012

Пожалуйста, посмотрите решение Дарина здесь .. Преобразование 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
  )
  ) %>

1 Ответ

2 голосов
/ 05 марта 2012

Не знаю, почему вы получаете такую ​​ошибку, код должен работать. Следующий шаблон редактора отлично работает для меня, я только что проверил его:

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