2013-02-26 2 views

risposta

26

ci sono 6 overloads di questo helper:

  1. @Html.EditorForModel()

    rende il modello ~/Views/Shared/EditorTemplates/TypeName.cshtml dove TypeName è l'esatto nome del tipo del modello di vista. Se il modello di visualizzazione è una raccolta (ad esempio IEnumerable<TypeName>, IList<TypeName>, TypeName[], ...) ASP.NET MVC esegue automaticamente il rendering del modello di editor corrispondente per ciascun elemento della raccolta. Non è necessario che tu scriva alcun loop nei tuoi punti di vista affinché ciò accada. È gestito dal framework per te.

  2. @Html.EditorForModel("templatename")

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml invece di basarsi sulla convenzione

  3. @Html.EditorForModel(new { Foo = "bar" })

    rende il modello di editor di default, ma passa un ulteriore dei dati della vista in modo che si potrebbe usare all'interno con ViewData["foo"] o ViewBag.Foo

  4. @Html.EditorForModel("templatename", new { Foo = "bar" })

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml invece di basarsi sulla convenzione e passa ulteriori dati immagine ad esso che si potrebbe usare all'interno con ViewData["foo"] o ViewBag.Foo

  5. @Html.EditorForModel("templatename", "fieldprefix")

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml invece di basarsi sulla convenzione e modifica il contesto di navigazione all'interno di questo modello, il che significa che se ad esempio si ha una chiamata @Html.TextBoxFor(x => x.FooBar) all'interno di questo modello, si otterrebbe name="fieldprefix.FooBar" anziché name="FooBar"

  6. @Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml invece di basarsi sulla convenzione e modifica il contesto di navigazione all'interno di questo modello, il che significa che, ad esempio, se si ha avuto un @Html.TextBoxFor(x => x.FooBar) chiamata all'interno di questo modello si otterrebbe name="fieldprefix.FooBar" invece di name="FooBar".Passa anche un ulteriore dei dati della vista in modo che si potrebbe usare all'interno con ViewData["foo"] o ViewBag.Foo

Nota: Il sistema di template cercherà prima per i modelli a ~/Views/XXX/EditorTemplates dove XXX è il nome del controller che serviva questo punto di vista e se non lo trova, cercherà ~/Views/Shared/EditorTemplates. Ciò potrebbe consentire una modifica più dettagliata dei modelli. È possibile avere modelli predefiniti nella cartella condivisa che potrebbero essere sovrascritti in base al controller.