Comment nommer dans MVC textboxes lors du passage XElement
-
25-09-2019 - |
Question
Je passe un XElement à mon avis Modifier et que vous voulez avoir les contrôles habituels HTML construit pour moi et correctement nommés. Le code que j'ai est:
...
<div class="editor-label">
<%= Html.LabelFor(model => Model.XPathSelectElement("site[@id = 'customerName']").Value)%>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => Model.XPathSelectElement("site[@id = 'customerName']").Value)%>
<%= Html.ValidationMessageFor(model => Model.XPathSelectElement("site[@id = 'customerName']").Value)%>
</div>
...
Mais ce produit suit:
<div class="editor-label">
<label for="Value">Value</label>
</div>
<div class="editor-field">
<input id="Value" name="Value" type="text" value="" />
</div>
Pourquoi est-ce et comment puis-je obtenir la vue de générer sensiblement nommé (par exemple) TextBoxes?
Merci,
Matt.
La solution
Vous devriez vraiment créer un ViewModel pour tenir vos données au lieu de vue faisant passer l'ensemble élément XML.
Par exemple:
public class CustomerModel
{
public CustomerModel(XElement xml)
{
this.Name = xml.XPathSelectElement("site[@id = 'customerName']").Value;
}
public string Name { get; set; }
}
Et puis simplement: Html.TextBoxFor (modèle => model.Name);
Edit: Et aussi ... Ne devrait pas votre <% = Html.LabelFor (modèle => Modèle .XPathSelectElement ( être% = Html.LabelFor (model => modèle .XPathSelectElement (
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow