MVC Editor для внутри другого редактора для - PullRequest
5 голосов
/ 26 октября 2010

У меня есть редактор для шаблона модели, как показано ниже.У меня также есть EditorFor for Date, который отлично работает, когда я использую EditorFor напрямую из View, но когда у меня есть EditoFor внутри редактора, он не работает.Есть идеи?

Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl[ucsrManagementSystem.Models.ContactsInMailingListsViewModel]"

Html.EditorFor(m => m.IsInMainlingList)  
Html.EditorFor(m => m.Id)  
Html.EditorFor(m => m.Name)  
Html.EditorFor(m => m.EndDate)//This is not showing Date's Editor Template when inside another EditorFor

Ответы [ 2 ]

1 голос
/ 16 июля 2015

У меня это тоже не работает;Я предполагаю, что это какая-то защита от рекурсии.

Если вместо этого вы измените внешний вызов на «EditorFor» на «Partial» - даже указывая на тот же файл .cshtml - внутренний «EditorFor's»будет работать.

0 голосов
/ 27 октября 2010

У меня работает.

Модель:

public class MyViewModel
{
    public DateTime Date { get; set; }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Date = DateTime.Now
        });
    }
}

Вид (~/Views/Home/Index.aspx):

<%: Html.EditorForModel() %>

Шаблон редактора для MyViewModel (~/Views/Home/EditorTemplates/MyViewModel.ascx):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Models.MyViewModel>" %>
<%: Html.EditorFor(x => x.Date) %>

Шаблон редактора для DateTime (~/Views/Home/EditorTemplates/DateTime.ascx):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<div>Some markup to edit date</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...