Comment puis-je définir id en utilisant Html.EditorFor avec MVC3

J'essaie de définir un id de champ comme suit:

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })

Mais cela se traduit par ce qui suit et il semble que mon id n'est pas défini:

<input type="text" value="334" name="item.Order" id="item_Order" class="text-box single-line">

Quelqu'un a-t-il une idée de ce que je fais mal? J'ai vérifié les formats autorisés pour EditorFor et regardé sur google pour des exemples, mais je ne pouvais pas voir quoi que ce soit qui correspondait à ce dont j'avais besoin.

24
demandé sur Samantha J T Star 2012-02-08 10:57:37

5 réponses

Vous devriez changer pour

@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })

Le deuxième paramètre de @Html.EditorFor est pour afficher les données, pas pour les attributs html

31
répondu dohaivu 2012-02-08 08:11:15
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row))
16
répondu Svetoslav Petrov 2015-03-02 15:21:34

Je sais que cette question est assez ancienne, mais tout ce que j'avais à faire était le suivant:

@Html.EditorFor(modelItem => item.EndDate, 
                new { htmlAttributes = new { @class = "form-control", @id = @endID } })

Vous pouvez lui donner toutes les classes ou id que vous voulez / avez besoin. J'ai ceci plus tôt dans ma page aussi bien pour créer un ID différent pour chaque élément:

string endID = "end-" + @item.ID;

Espérons que cela aide quelqu'un à l'avenir.

5
répondu Trevor Nestman 2016-08-08 15:48:32

Avez-vous essayé de créer un modèle d'éditeur pour votre x.Order?

Avoir ceci sur votre modèle d'éditeur:

<input type="text" id="@ViewData["id"]">

Et utilisez ceci sur votre page d'affichage:

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) })
3
répondu AceMark 2012-04-15 06:10:07

Je ne suis pas sûr si vous pouvez remplacer L'attribut ID lors de l'utilisation des aides fortement typées. Mais vous pouvez utiliser l'autre type non-model:

@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order)

Cela utilisera le premier paramètre comme ID et le second comme valeur par défaut.

2
répondu Tony Basallo 2012-02-08 07:49:59