Mar*_*nne 55 asp.net-mvc razor asp.net-mvc-3
我正在尝试做一些与众不同的事情.我有一个包含Id的视图.根据Id的值,我想改变我出现的标题.就像是:
@{ switch id
case "test": @;<h1>Test Site</h1>
case "prod": @:<h1>Prod Site</h1>
break;
}
Run Code Online (Sandbox Code Playgroud)
我有很多案例条件,所以我虽然使用案例是最好的.任何人都可以建议我如何做到这一点并让它工作?我得到了很多语法错误,所以我想也许它编码不好.
Joe*_*ton 128
您的开关需要完全封闭在一个块中,并且需要正确"断开":
// 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;
}
}
Run Code Online (Sandbox Code Playgroud)
因为<h1>标签本身是封闭的html块,所以您可能不需要<text>用于分隔的块.把它们包括在内只是我的习惯.
yoe*_*alb 46
@switch (id)
{
case "test": <h1>Test Site</h1>
break;
case "prod": <h1>Prod Site</h1>
break;
}
Run Code Online (Sandbox Code Playgroud)
没有必要将整个switch语句包含在一个@{}块中(与Joel Etherton的帖子不同)
您的错误基本上是常规的语法错误,与剃刀无关;
变量不在括号中
开关的主体不在括号内
在第一个声明之后没有"休息".
正如问题标题所示,这并不能回答您的问题,但它确实解决了您在问题正文中描述的问题。
使用视图模型类作为视图的模型并添加包含该switch语句的方法。然后只需从视图中调用该方法即可@Model.MethodWithSwitchStatement()。[id可以保存在视图模型对象中。]
| 归档时间: |
|
| 查看次数: |
68312 次 |
| 最近记录: |