Whe*_*ill 9 c# asp.net-mvc razor asp.net-mvc-4
我正在使用MVC4和Razor,并希望从视图中确定模型类型.这应该很容易,但我不能完全正确的语法.
我想这样做,所以我可以有条件地在_Layout.cshtml页面中显示不同的标记,具体取决于当前使用的视图和模型.
它必须(我认为)的内容如下:
@if (Model.GetType() == Web.Models.AccommodationModel) { // Obviously not correct
<h1>Accomodation markup here</h1>
}
Run Code Online (Sandbox Code Playgroud)
任何建议非常感谢!
Dar*_*rov 15
您可以使用is关键字:
@if (Model is Web.Models.AccommodationModel) {
<h1>Accomodation markup here</h1>
}
Run Code Online (Sandbox Code Playgroud)
或者(丑):
@if (Model.GetType() == typeof(Web.Models.AccommodationModel)) {
<h1>Accomodation markup here</h1>
}
Run Code Online (Sandbox Code Playgroud)
尽管您已经得到了答案,但我建议您重新考虑整个概念。
您在这里所做的是将通用布局与一些特定视图结合起来。这些视图将来可能会发生变化,要求您更改布局,它们可能会越来越多,或者有些会被删除。因此,您的方法违反了单一职责原则:更改 _layout.cshtml 的原因显然不止一个。
@section SomeSection { <h1>markup</h1> }在需要此类额外代码的视图中插入 a 并使用 渲染它在布局中怎么样@RenderSection("SomeSection"),也许还可以检查@if(IsSectionDefined("SomeSection"))您想要的位置?
| 归档时间: |
|
| 查看次数: |
11663 次 |
| 最近记录: |