我是.net MVC和Razor引擎的新手,但我已经使用PHP很长一段时间了.我正在尝试在Razor中执行此PHP代码:
var data = [
<?php for ($i = 0; $i < 50; ++$i) {
echo '[' . $i . ',' . sin($i) . ']';
if ($i != 49)
echo ',';
?>
],
Run Code Online (Sandbox Code Playgroud)
我设法用这个来做,但对于这么简单的东西看起来很糟糕和复杂
var data = [
@for(int i = 0; i < 50; ++i) {
<text>[</text>@i<text>,</text>@Math.Sin(i)<text>]</text>if (i != 49) {<text>,</text>}
}
];
Run Code Online (Sandbox Code Playgroud)
问题是[,]并且,与Razor语法混淆并给出语法错误,所以我不得不将它们包装在<text>标签上.
有没有更简单/更好的方法来做到这一点?也许像PHP回声.
谢谢.
一个gerenal回声的MVC CSHTML等同可能是:
@Html.Raw("SomeStringDirectlyInsideTheBrowserPageHTMLCode")
这会将(动态)字符串呈现在"<"和">"不需要进行HTML编码的位置.例如@Html.Raw(String.Format("<div class=\"{0}\" style=\"{1}\">", myclass, mystyle))工作正常.
请注意,@Html.Raw(MyString)编译器无法检查呈现的HTML标记.我的意思是:@ Html.Raw("<div ....>")不能仅仅被</ div>关闭,因为你会得到一个错误(编译器没有检测到<div ....>)所以你必须用@ Html.Raw("</ div>")关闭标签
PS
在某些情况下,这不起作用(例如,它在DevExpress中失败) - 使用ViewContext.Writer.Write()或ViewContext.Writer.WriteLine()替代.
用这个:
@String.Format("[{0},{1}]", i, Math.Sin(i))
Run Code Online (Sandbox Code Playgroud)
String.Join()如果您创建数组(String.Join Method),则可以使用逗号
| 归档时间: |
|
| 查看次数: |
8973 次 |
| 最近记录: |