5 Stimmen

MVC EditorFor innerhalb eines anderen EditorFor

Ich habe eine EditorFor-Vorlage für eine Modell-Rolle wie unten. Ich habe auch EditorFor für Datum, die gut funktioniert, wenn ich EditorFor direkt von Ansicht verwenden, aber wenn ich EditoFor innerhalb eines Editors für es funktioniert nicht. Irgendeine Idee?

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

1voto

Bei mir funktioniert es auch nicht; ich vermute, dass es sich dabei um eine Art Schutz vor Rekursionen handelt.

Wenn Sie den äußeren Aufruf von "EditorFor" stattdessen in einen "Partial" ändern - auch wenn dieser auf dieselbe .cshtml-Datei verweist -, funktionieren die inneren "EditorFor"-Aufrufe.

0voto

Darin Dimitrov Punkte 990883

Das funktioniert bei mir.

Modell:

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

Controller:

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

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

<%: Html.EditorForModel() %>

Editor-Vorlage für MyViewModel ( ~/Views/Home/EditorTemplates/MyViewModel.ascx ) :

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

Editorvorlage für DateTime ( ~/Views/Home/EditorTemplates/DateTime.ascx ) :

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X