Ich bin stecken versucht, herauszufinden, warum meine Vorlage nicht gerendert oder gefunden (wie Haltepunkte auf Vorlage nicht getroffen werden). Ich habe ein Modell wie dies bekommt:ASP.NET MVC nicht finden/mit benutzerdefinierten Typ Editor-Vorlage
public class SomeModel
{
public Dropdown Cities { get; set; }
}
in dieser Ansicht verwendet
@model Mvc.Models.SomeNamespace.SomeModel
@{
Layout = "../Shared/_Site.cshtml";
}
@Html.ValidationSummary(true)
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="Continue">
}
wo die Dropdown-Objektdefinition
public class Dropdown
{
public int SelectedValue { get; set; }
public IEnumerable<SelectListItem> Values { get; set; }
public string Placeholder { get; set; }
}
ist ich eine Editor Vorlage für Dropdown erstellt habe unter Ansichten/Geteilt/EditorTemplates/Dropdown.cshtml
@model Mvc.ViewModels.Dropdown
@Html.DropDownListFor(model => model.SelectedValue, Model.Values, Model.Placeholder)
Die schockierende Sache für mich ist, dass ich auch DateTime.cshtml Vorlage unter diesem Pfad habe, die gut funktioniert.
Jede Eigenschaft auf dem Modell, außer denen des Dropdown-Typs wird gerendert, sogar die DateTime-Dateien mit ihrer benutzerdefinierten Vorlage.
Bin mir etwas nicht bewusst?
BEARBEITEN: Bereits versucht mit [UIHint ("Dropdown")] auf Städte Eigenschaft.
EDIT2: versuchte DropdownViewModel
Nicht verwandt, aber alles was es sein muss, ist '@ Html.DropDownListFor (m => SelectedValue, Model.Values, Model.Placeholder)' - es muss kein zweites identisches 'IEnumerable' erstellt werden die erste –
@StephenMuecke Danke, jede Abkürzung wird geschätzt :) –
Related: [Wiederverwendbare Editor-Vorlage mit DropDownList für Business-Objekte] (http://Stackoverflow.com/q/6744432/181087) – NightOwl888