ASP.NET MVC 4 de l'Éditeur de Modèle pour les types de base
J'ai créé un modèle pour Nombre d'entrée et si je ne
@Html.EditorFor(model => model.SomeValue, "Number")
il fonctionne très bien et le modèle est utilisé.
Cependant cela ne fonctionne pas:
@Html.EditorFor(model => model.SomeValue)
Pourquoi ai-je besoin de spécifier le nom de l'Éditeur de Modèle pour les types de base ?
Vous devez vous connecter pour publier un commentaire.
De l'éditeur de modèles de travail par convention. Le nom du modèle doit correspondre au nom de la type. Donc par exemple si
SomeValue
est unint
type que vous pourriez écrire un éditeur personnalisé modèle à~/Views/Shared/EditorTemplates/Int32.cshtml
qui sera utilisé. Dans ce cas, tous les types integer utilisera ce modèle personnalisé lorsque vous écrivez@Html.EditorFor(model => model.SomeValue)
.Si vous ne voulez pas remplacer tous les modèles pour les types integer, vous pourriez écrire un spécifique modèle nommé
~/Views/Shared/EditorTemplates/Number.cshtml
que vous pourriez utiliser uniquement pour certains biens, par la spécification de ce modèle de nom comme second argument de laEditorFor
helper:@Html.EditorFor(model => model.SomeValue, "Number")
ou par la décoration de votre modèle de vue de la propriété avec le[UIHint]
attribut:et puis tout simplement à l'aide de
@Html.EditorFor(model => model.SomeValue)
rendu de laNumber.cshtml
modèle personnalisé.Je voudrais vous recommandons également la lecture de Brad Wilson
blog
sur les modèles par défaut dans ASP.NET MVC.~/Views/Shared/EditorTemplates/Number.cshtml
. Le point avantNumber.cshtml
doit être remplacé par une barre oblique.Dans votre Éditeur de Modèle, vous devez avoir le même type
Exemple :
modèle.SomeValue est le type de loremIpsumObject
Dans votre EditorTemplate vous êtes :
vous pouvez trouver un exemple ici pour datetime
Il vous aide ?