1

私はMVC3、C#、Razorを使用しています。

DBに保存および編集されるテンプレートパラグラフがあります。

「売上データは次のように表示できます:{SalesTable1}」

{SalesTable1}ビットを、「Sales」クラスを反復処理するコード(おそらくかみそり)の結果に置き換えたいと思います。

<table>
@foreach var item in Sales
{
 <tr>
 <td>@item.Product</td>
 <td>@item.Sales</td>
 </tr>
}
</table>

上記のコードは完全に正しくないかもしれませんが、それはアイデアを示しています。

XSLTでは、「SalesTable1」という名前の「テンプレート」を呼び出します。

Razorでこれを解決するための良いアプローチは何でしょうか?ところで、私はViewModelを使用しており、Viewで処理するためにテンプレートデータと実際のデータを配置できます。

ありがとう。

編集:より良い方法がある場合は、テンプレートに{MySection}タイプのタグ(具体的には)は必要ありません。ただし、「管理者」がアプリケーション内でこれらのタグの周囲のテキストを編集できることが重要です。

EDIT2:さまざまなトピックタイプに応じてさまざまな部分ビューを呼び出すメインビューがあります。各パーシャルビュー内で、{tags}をパーシャルビューでも指定されているランタイム@sectionテンプレートに置き換えたいと思っています。これはうまくいかないようです。「RenderSection」コマンドはレイアウトまたは親ビューに表示されるはずだからだと思います。

EDIT3:パーシャルビューから別のRenderPartialを使用したほうがいいと思います。ただし、{myTable}タグを@ {Html.RenderPartial( "myTable");}に置き換える方法がわかりません。

<text>This is a test sentence. {myTable} After table </text>

生産する:

 <text>This is a test sentence. @{Html.RenderPartial("myTable");} After table </text>

最後に、このアプローチには1つの問題があります。「myTable」パーシャルが存在しない場合、または{myTable}のスペルが間違っている場合、つまり{MyTablee}の場合、アプリケーションがクラッシュします。パーシャルビューを実行せずにそのまま続行したいと思います。

4

2 に答える 2

1

MVC3セクションを使用できます...それらは次のように定義されています。

@section SideBar {
 // Side bar code...
}

次に、それらをレンダリングする必要がある場合は、単に呼び出します

@RenderSection("SideBar");

ここにGUによる素晴らしい投稿があります...

http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

于 2013-03-07T12:27:10.147 に答える
0

部分ビューのタグを置き換えることで、これをソートしました。

どうもありがとう。

于 2013-03-08T01:27:52.407 に答える