Comment dois-je appeler "EditorForModel" avec ses paramètres?
Avant de poster cette question, j'ai googlé pour EditorForModel
à l'aide de paramètres.
J'ai lu Pourquoi ne pas utiliser le langage Html.EditorForModel() et ce blog.
Je n'ai pas trouvé d'articles liés à mes besoins.
Pouvez-vous me donner un exemple d'un appel à EditorForModel
avec les paramètres?
OriginalL'auteur Snake Eyes | 2013-02-26
Vous devez vous connecter pour publier un commentaire.
Il y a 6 surcharges de cette aide:
@Html.EditorForModel()
Rend le
~/Views/Shared/EditorTemplates/TypeName.cshtml
modèle oùTypeName
est le type exact nom de votre modèle de vue. Si votre vue est un modèle de collection (c'est à direIEnumerable<TypeName>
,IList<TypeName>
,TypeName[]
, ...) ASP.NET MVC rendre automatiquement le correspondant de l'éditeur de modèle pour chaque élément de la collection. Vous n'avez pas besoin d'être écrit, les boucles de vos points de vue pour que cela se produise. Il est géré par le framework pour vous.@Html.EditorForModel("templatename")
Rend
~/Views/Shared/EditorTemplates/templatename.cshtml
au lieu de s'appuyer sur la convention@Html.EditorForModel(new { Foo = "bar" })
Rend la valeur par défaut de l'éditeur de modèle, mais elle passe à une autre vue des données que vous pouvez utiliser à l'intérieur avec
ViewData["foo"]
ouViewBag.Foo
@Html.EditorForModel("templatename", new { Foo = "bar" })
Rend
~/Views/Shared/EditorTemplates/templatename.cshtml
au lieu de s'appuyer sur la convention et le transmet à une autre vue des données que vous pouvez utiliser à l'intérieur avecViewData["foo"]
ouViewBag.Foo
@Html.EditorForModel("templatename", "fieldprefix")
Rend
~/Views/Shared/EditorTemplates/templatename.cshtml
au lieu de s'appuyer sur la convention et modifie le contexte de navigation à l'intérieur de ce modèle, ce qui signifie que, par exemple, si vous avez eu une@Html.TextBoxFor(x => x.FooBar)
appeler à l'intérieur de ce modèle, vous obtenezname="fieldprefix.FooBar"
au lieu dename="FooBar"
@Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })
Rend
~/Views/Shared/EditorTemplates/templatename.cshtml
au lieu de s'appuyer sur la convention et modifie le contexte de navigation à l'intérieur de ce modèle, ce qui signifie que, par exemple, si vous avez eu une@Html.TextBoxFor(x => x.FooBar)
appeler à l'intérieur de ce modèle, vous obtenezname="fieldprefix.FooBar"
au lieu dename="FooBar"
. Il passe aussi une autre vue des données que vous pouvez utiliser à l'intérieur avecViewData["foo"]
ouViewBag.Foo
Remarque: Le système de template va d'abord chercher des modèles dans
~/Views/XXX/EditorTemplates
où XXX est le nom du contrôleur de servi ce point de vue et si il ne le trouve pas, il va chercher dans~/Views/Shared/EditorTemplates
. Cela pourrait permettre une plus fine réglage des modèles. Vous pourriez avoir des modèles par défaut dans le dossier partagé qui pourrait être remplacée par le contrôleur de base.OriginalL'auteur Darin Dimitrov