我正在将XElement传递给我的编辑视图,并希望为我构建通常的HTML控件并正确命名。我的代码是:
...
<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>
...
但这会产生以下结果:
<div class="editor-label">
<label for="Value">Value</label>
</div>
<div class="editor-field">
<input id="Value" name="Value" type="text" value="" />
</div>
为什么会这样,以及如何让视图生成合理命名的(例如)TextBoxes?
谢谢,
太
答案 0 :(得分:0)
您应该创建一个ViewModel来保存视图数据,而不是将其传递给完整的xml元素。
例如:
public class CustomerModel
{
public CustomerModel(XElement xml)
{
this.Name = xml.XPathSelectElement("site[@id = 'customerName']").Value;
}
public string Name { get; set; }
}
然后简单地说:Html.TextBoxFor(model =&gt; model.Name);
编辑:还有...不应该你的&lt;%= Html.LabelFor(model =&gt; 模型 .XPathSelectElement( be%= Html.LabelFor(model =&gt; model .XPathSelectElement(