我使用的是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