Razorビューでこれを行いたい:
@foreach (Customer cust in Model.Customers)
{
<tr data-custid="@customer.GetIdAsText()">
@Html.RenderPartial("CustomerListTableRow", cust)
</tr>
}
私が理解している限り、これはうまくいくはずです。foreach ブロックには <tr>...</tr> が含まれています。その中はマークアップモードになっているので、C# モードに切り替えるには @ が必要です。問題は、明らかに変数 cust がその型情報 (および値?) を失うことです。そのため、RenderPartial が期待するオブジェクトに void をキャストできないと不平を言います。
私はそれを次のように動作させました:
@foreach (Customer cust in Model.Customers)
{
@:<tr data-custid="@customer.GetIdAsText()">
Html.RenderPartial("CustomerListTableRow", cust);
@:</tr>
}
しかし、醜く見えることは別として、VS にコードを美化させると、次のようにめちゃくちゃになります。
@foreach (Customer cust in Model.Customers)
{
@:<tr data-custid="@customer.GetIdAsText()">
Html.RenderPartial("CustomerListTableRow", cust); @:</tr> }
いいですね。:-)
では、なぜ最初の解決策がうまくいかないのでしょうか? どのように書けばよいですか?