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.
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
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row))
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.
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) })
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.