在asp.net mvc3项目中,我使用ienumerable视图来显示webgrid中的对象集合。在同一视图中我使用html辅助方法来创建对象。我在帮助方法中遇到错误“System.collection.generic.ienumerable< ...>不包含< ...>”的定义
@model IEnumerable<TRADEBLOTTER_MVCPOC.Models.Trader />
@{
ViewBag.Title = "NewTrader";
}
@{
var grid = new WebGrid(source: Model,
defaultSort: "TradeID",
rowsPerPage: 5, fieldNamePrefix: "wg_",
canPage: true, canSort: true,
pageFieldName: "pg", sortFieldName: "srt" );
}
<h2>NewTrader</h2>
@using (Html.BeginForm(FormMethod.Post))
{
@Html.ValidationSummary()
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
@Html.LabelFor(t=>t.TraderName,"Trader Name")
</td>
<td>
@Html.TextBoxFor(t=>t.TraderName)
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Submit Trader" />
</td>
</tr>
</table>
}
答案 0 :(得分:0)
我认为通常你会在变量上面的模型中使用类似的东西
[DisplayName("Trader Name")]
public string TraderName { get; set; }
然后是你的观点
<h2>NewTrader</h2>
@using (Html.BeginForm(FormMethod.Post))
{
@Html.ValidationSummary()
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
@Html.LabelFor(t=>t.TraderName)
</td>
<td>
@Html.TextBoxFor(t=>t.TraderName)
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Submit Trader" />
</td>
</tr>
</table>
}
答案 1 :(得分:0)
我的建议:使用网格的部分页面(使用IEnumerable版本的模型)和单个变量的另一个部分页面(使用单个模型)。
如果网格仅显示信息,而不是编辑任何内容,则将网格绑定到模型中定义的方法 - 然后视图不需要具有IEnumberable模型。