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.

Était-ce utile?

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
scroll top