44 votes

Modèle d'éditeur ASP.NET MVC 4 pour les types de base

J'ai créé un modèle pour la saisie des nombres et si je fais

@Html.EditorFor(model => model.SomeValue, "Number")

cela fonctionne bien et le modèle est utilisé.

Cependant, cela ne fonctionne pas :

@Html.EditorFor(model => model.SomeValue)

Pourquoi dois-je spécifier le nom du modèle d'éditeur pour les types de base ?

91voto

Darin Dimitrov Points 528142

Les modèles d'éditeurs fonctionnent par convention. Le nom du modèle doit correspondre au nom du type. Par exemple, si SomeValue est un int vous pourriez écrire un modèle d'éditeur personnalisé à ~/Views/Shared/EditorTemplates/Int32.cshtml qui sera utilisé. Dans ce cas, tous les types d'entiers utiliseront ce modèle personnalisé lorsque vous écrirez @Html.EditorFor(model => model.SomeValue) .

Si vous ne souhaitez pas remplacer tous les modèles pour les types entiers, vous pouvez écrire un modèle spécifique nommé ~/Views/Shared/EditorTemplates/Number.cshtml que vous pouvez utiliser uniquement pour certaines propriétés en spécifiant le nom de ce modèle comme second argument de la fonction EditorFor aide : @Html.EditorFor(model => model.SomeValue, "Number") ou en décorant la propriété de votre modèle de vue avec l'attribut [UIHint] attribut :

[UIHint("Number")]
public int SomeValue { get; set; }

et en utilisant simplement @Html.EditorFor(model => model.SomeValue) rendra le Number.cshtml modèle personnalisé.

Je vous recommande également de lire l'ouvrage de Brad Wilson intitulé blog post sur les modèles par défaut dans ASP.NET MVC.

1voto

Olivier Points 404

Dans votre modèle d'éditeur, vous devez avoir le même type de Exemple :

model.SomeValue est un type de loremIpsumObject

Dans votre EditorTemplate, vous êtes :

  @model YourNamespaceWhereIsYourClass.loremIpsumObject
  ...And your code in your editorTemplate....

vous pouvez trouver un exemple aquí pour la date

Il vous aide ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X