我使用的是MVC3,C#和Razor。用Razor替換{mySection}類型標籤的好方法是什麼?
我有模板paragraghs,它們存儲和編輯在DB,等
「的銷售數據可以被表示如下:{SalesTable1}」
我希望替代{SalesTable1}位與一些代碼的結果(最有可能的剃刀),其遍歷「銷售」類,即
<table>
@foreach var item in Sales
{
<tr>
<td>@item.Product</td>
<td>@item.Sales</td>
</tr>
}
</table>
以上代碼可能是不完全正確,但它給出了這個概念。
在XSLT中,會調用一個名爲「SalesTable1」的「模板」。
什麼是在Razor中解決這個問題的好方法?順便說一下,我使用的ViewModel,我可以把我的模板數據和我的真實數據進行處理我的視圖。
謝謝。
編輯:如果有更好的方法,我不需要在模板中使用{MySection}類型標籤(特別是)。但是,「管理員」可以在應用程序中編輯這些標籤周圍的文本,這一點很重要。
編輯2:我有一個主視圖,根據不同的主題類型調用不同的部分視圖。在每個部分視圖中,我希望用部分視圖中指定的運行時@section模板替換{tags}。這似乎不起作用。我猜是因爲「RenderSection」命令應該出現在佈局或父視圖中。
編輯3:我想我會更好使用從我的部分視圖中的另一個RenderPartial。不過,我不確定如何用@ {Html.RenderPartial(「myTable」);}替換{myTable}標籤。
<text>This is a test sentence. {myTable} After table </text>
產生:
<text>This is a test sentence. @{Html.RenderPartial("myTable");} After table </text>
最後,我確實有在這種方法的一個問題,如果「mytable的」部分不存在,或者{myTable的}拼寫錯誤,即{MyTablee}然後該應用程序會崩潰。我希望它只是繼續運行而不運行部分視圖。
感謝您的支持。但我不確定它會解決我的問題,因爲我有一個主視圖,然後呈現部分視圖。控制「RenderSection」命令的邏輯存在於部分視圖中。似乎不能調用包含「RenderSection」命令的部分視圖。也許這是因爲「RenderSection」是頂級命令,只能在佈局視圖中使用?更多細節在上面的「編輯」中。 – EdB 2013-03-07 22:56:21
我在EDIT3中添加了更多的評論,描述了更多的想法。提前感謝任何幫助。 – EdB 2013-03-07 23:33:52
標記爲讚賞的幫助,雖然不是我的問題的答案。非常感謝。 – EdB 2013-03-08 01:29:12