在CSHTML页面中实现一个switch语句
我正在尝试做一些不同的事情。 我有一个包含Id的视图。 基于Id的价值,我想改变我的标题出现。 就像是:
@{ switch id case "test": @;<h1>Test Site</h1> case "prod": @:<h1>Prod Site</h1> break; }
我有相当多的案件条件,所以我虽然使用案件将是最好的。 任何人都可以build议我如何做到这一点,并得到它的工作? 我得到了很多的语法错误,所以我想也许它没有很好地编码。
您的交换机需要完全封装在一个模块中,并且需要正确地“断开”
// Use the @{ } block and put all of your code in it @{ switch(id) { case "test": // Use the text block below to separate html elements from code <text> <h1>Test Site</h1> </text> break; // Always break each case case "prod": <text> <h1>Prod Site</h1> </text> break; default: <text> <h1>WTF Site</h1> </text> break; } }
由于<h1>
标签本身是封闭的html块,因此您可能不需要<text>
块进行分离。 包括他们只是我的习惯。
@switch (id) { case "test": <h1>Test Site</h1> break; case "prod": <h1>Prod Site</h1> break; }
没有必要把整个switch语句放在一个@{}
块中(不像Joel Etherton的post)
你的错误基本上是正常的语法错误,并与剃刀无关;
-
该variables不在括号中
-
开关的主体不在括号内
-
在第一个陈述后没有“rest”。
这个问题并没有回答你的问题,正如问题的标题所表明的那样,但它确实解决了你在问题主体中所描述的问题。
使用视图模型类作为视图的模型,并添加一个包含switch
语句的方法。 然后通过@Model.MethodWithSwitchStatement()
从视图中调用方法。 [该id
可以保存在视图模型对象中。]
- ASP.NET MVC 3 Razor:将JavaScript文件包含在head标签中
- ASP.NET(OWIN)身份:如何从Web API控制器获取用户ID?
- MVC @RenderSection“部分已被定义,但尚未呈现”脚本。 当多层次的页面
- ServiceStack应该是MVC应用程序中的服务层还是应该调用服务层?
- 当前上下文中不存在名称“ViewBag” – Visual Studio 2015
- ASP.NET MVC – 业务逻辑是否应该存在于控制器中?
- IIS 5上的ASP.NET 5项目托pipe
- Html.DisplayTextFor()是什么意思?
- 在ASP.NET MVC Html.ActionLink中包含一个锚标签