0

在 asp.net mvc3 项目中,iam 使用 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>
}
4

2 回答 2

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>
}
于 2012-06-23T05:25:58.827 回答
0

我的建议:对网格使用部分页面(使用模型的 IEnumerable 版本),对单个变量使用另一个部分页面(使用单个模型)。

如果网格仅显示信息,而不是编辑任何内容,则将网格绑定到模型中定义的方法 - 那么视图不需要具有 IEnumberable 模型。

于 2012-09-05T13:26:23.290 回答