2010-10-26 15 views
5

J'ai un modèle EditorFor pour un rôle de modèle comme ci-dessous. J'ai aussi EditorFor pour Date qui fonctionne bien quand j'utilise EditorFor directement à partir de View, mais quand j'ai EditoFor dans un éditeur, ça ne marche pas. Une idée?MVC EditorFor à l'intérieur d'un autre EditorFor

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 
+0

Pourriez-vous également publier l'autre modèle, le modèle de date et un extrait du modèle? –

Répondre

0

Ça marche pour moi.

Modèle:

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

Controller:

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

Voir (~/Views/Home/Index.aspx):

<%: Html.EditorForModel() %> 

modèle de l'éditeur pour MyViewModel (~/Views/Home/EditorTemplates/MyViewModel.ascx):

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

modèle de l'éditeur pour DateTime (~/Views/Home/EditorTemplates/DateTime.ascx):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %> 
<div>Some markup to edit date</div> 
1

Il ne fonctionne pas pour moi non plus; Je présume que c'est une sorte de protection contre la récurrence.

Si vous modifiez l'appel externe à 'EditorFor' à un 'Partiel' à la place - même en pointant sur le même fichier .cshtml - le 'EditorFor interne fonctionnera.