我想這樣做,在我的Razor視圖:奇怪的剃刀嵌套的foreach(...){<tr> @Html ....</tr>}
@foreach (Customer cust in Model.Customers)
{
<tr data-custid="@customer.GetIdAsText()">
@Html.RenderPartial("CustomerListTableRow", cust)
</tr>
}
據我瞭解,這應該工作。該foreach塊包含一個< tr> ... </tr>。裏面,它處於標記模式,所以我需要@切換到C#模式。問題是,變量cust顯然失去了它的類型信息(和值?),所以它抱怨說它不能將void作爲對象,RenderPartial期望的。
我得到它的工作是這樣的:
@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> }
不錯,呵呵? :-)
那麼,爲什麼第一個解決方案不工作? 應該如何寫?
看看保羅的答案,這是正確的。我剛剛發現自己,並回到這裏回答我自己的問題,但他打敗了我。 :-) –