0

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>
}
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 に答える