我试图动态创建一个函数的名称:
我用剃刀代码设置名称:
@ { name="bob"; }
然后我尝试创建javascript函数,但语法错误。
function @name@:_onActivate() {
.....
}
如何在函数名称中使用@name?
我知道我迟到了,但我有同样的问题,想出了这个..
使用@()Razor语法:
function @(Model.Name)_Init(){..... some code ...}
奇迹般有效
(Qazxswpoi)
这被发现可以动态地编写Javascript函数名
http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/
还有另一种选择:
@{
@:function
@name<text>_onActivate() {
....
}
</text>
}
在某些情况下,此方法在Visual Studio中不会造成太多混乱。
如果您的JavaScript在视图中(而不是它自己的js文件 - 虽然我不是说我认为这是可取的),您可以尝试将您的JS代码包装在@{
var functionStart = "function " + name + "_onActivate()";
}
@functionStart
{
...
}
标记中,以便解析器切换回HTML模式(vs C#模式)。
另一个替代方案可能是不动态命名函数,而是将名称作为参数传递 - 但是否这样做可能取决于您的设计/实现。
这对我很有用:
<text>