Jer*_*ose 42 asp.net-mvc asp.net-mvc-templates asp.net-mvc-3
你能否将MVC指向默认文件夹以外的文件夹(Views/Shared/EditorTemplates&Views/Shared/DisplayTemplates)?我想将它们放在子文件夹下面的子文件夹中,或者放在Shared文件夹之外的其他文件夹中.
例如,如果我在此文件夹下有一个编辑器模板:
〜\查看\订单\ ProductModel.cshtml
如何告诉我的EditorFor模板使用这个tempalte名称?
我试过完全限定它,但这不起作用:
@Html.EditorFor(m => m.ProductModel, @"~\Views\Order\ProductModel.cshtml")
Run Code Online (Sandbox Code Playgroud)
我尝试过使用正斜杠和反斜杠,有/无.chstml,我能想到的每一个组合.我开始认为这不受支持,但我无法想象为什么它不会.
Dar*_*rov 53
不,我担心你不能这样做.
例如,如果我在此文件夹下有一个编辑器模板
那不再是编辑器模板了.这是部分的.如果要在不同控制器之间共享编辑器模板,只需将它们放在~/Views/Shared/EditorTemplates文件夹中即可.
就子文件夹而言,你可以这样做:
@Html.EditorFor(x => x.Foo, "Order/ProductModel")
Run Code Online (Sandbox Code Playgroud)
这将呈现~/Views/CurrentController/EditorTemplates/Order/ProductModel.cshtml或~/Views/Shared/EditorTemplates/Order/ProductModel.cshtml编辑器模板.
老问题,但是...为特定控制器添加显示/编辑器模板的正确方法是将其添加到DisplayTemplates或EditorTemplates子文件夹中。
假设在您的示例中,您有OrderController,您可以简单地将模型的显示模板放入子文件夹中,如下所示:
~\Views\Order\DisplayTemplates\ProductModel.cshtml
Run Code Online (Sandbox Code Playgroud)
然后,从您的视图正常调用显示模板(例如:从`~\Views\Order\Index.cshtml):
@Html.DisplayFor(m => m.MyProductModelProperty)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16935 次 |
| 最近记录: |