RAZOR/MVC 3 中视图的预处理等效项
我正在寻找
#if DEBUG
//view elements to show just for debug builds
#if
MVC3/Razor 中 for 视图的等效项。实现此类设置的惯用方法是什么?
I'm looking for the equivalent of an
#if DEBUG
//view elements to show just for debug builds
#if
for views in MVC3/Razor. What's the idiomatic method for implementing this type of a setup?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在我看来,这太混乱了。视图应该是愚蠢的,并且专注于渲染 HTML,而不是做出基于构建的决策。
如果配置了调试,请在视图模型中设置属性,并将它们呈现在视图中。
如果属性为空(例如非调试),则不会渲染任何内容。
That's too messy IMO. Views should be dumb, and focused on rendering HTML, not making build-based decisions.
Set properties in your view model if debug is configured, and render them out in the View.
If the properties are null (e.g non-debug), nothing will get rendered.
您可以使用 HttpContext。 Current.IsDebuggingEnabled,它检查 web.config 文件中的调试值。
例如:
另一个选项是使用编写您自己的 HttpHelper 扩展
然后在您的 Razor 代码中您可以将其用作:
You can use HttpContext.Current.IsDebuggingEnabled, it checks debug value in the web.config file.
For instance:
The other option is use write your own HttpHelper extension
Then in your Razor code you can use it as:
不要认为您可以在 Razor 中执行此操作,因为它的编译方式与 C# 代码不同。
所以我想说最好的方法是在控制器中执行此操作并将其添加到模型中的值中。
编辑:这里有一些更多信息。这里的人建议使用一种扩展方法来加载适当的代码,无论它是否处于调试状态: asp.mvc查看发布配置中输入#IF DEBUG
由于您还没有告诉我们您想做什么,所以我无法给您任何“代码”答案。
Don't think you can do that in Razor as it doesn't compile the same way as C# code does.
So I'd say the best way to do it would be to do it in your controller and add it to a value in your model.
Edit: Here's some more info. The person here is suggesting an extension method that loads the appropriate code whether it's in debug or not: asp.mvc view enteres #IF DEBUG in release configuration
Since you haven't told us what you'd like to do, i can't give you any 'code' answers.
预处理器指令 (
#if
) 是 C# 的一项语言功能,您可以使用 剃刀代码块 (@{}
),然后使用 显式分隔转换 (
) 或 显式行转换 (@:
) 有条件地添加 html,如下所示:另请参阅: Razor 中的预处理器指令
Preprocessor directives (
#if
) are a language feature C#, which you can enter by using a razor code block (@{}
) and then use a explicit delimited transition (<text></text>
) or an explicit line transition (@:
) to conditionally add html like this:See Also: Preprocessor directives in Razor