gpt4 book ai didi

javascript - 外部 Javascript 中的 Razor 语法

转载 作者:数据小太阳 更新时间:2023-10-29 05:51:56 28 4
gpt4 key购买 nike

您可能知道,ASP.NET MVC 中的 Razor 语法在外部 JavaScript 文件中不起作用。

我目前的解决方案是将 Razor 语法放在一个全局变量中,并从使用该 .js 文件的 mvc View 中设置该变量的值。

JavaScript 文件:

function myFunc() {
alert(myValue);
}

MVC View 文件:

<script language="text/javascript">
myValue = @myValueFromModel;
</script>

我想知道如何将 myValue 直接作为参数传递给函数?我更喜欢使用参数进行显式调用,而不是依赖全局变量,但是我不太喜欢 javascript。

我如何使用 javascript 参数实现它?谢谢!

最佳答案

只需让您的函数接受一个参数并在警报(或任何地方)中使用它。

外部.js

function myFunc(value) {
alert(value);
}

someview.cshtml

<script>
myFunc(@myValueFromModel);
</script>

不过要记住的一件事是,如果 myValueFromModel 是一个字符串,那么它会以 myFunc(hello) 的形式出现,因此您需要将其包装起来在引号中所以它变成 myFunc('hello') 像这样

myFunc('@(myValueFromModel)');

请注意与 Razor 一起使用的额外 ()。这有助于引擎区分 Razor 代码之间的中断位置,因此不会发生任何奇怪的事情。当周围有嵌套的 (" 时,它会很有用。

编辑

如果要多次执行此操作,则可能需要在 JavaScript 端进行一些更改。主要是显示的示例没有正确描述场景。它将需要修改。您可能想要使用像这样的简单结构。

jsFiddle Demo

外部.js

var myFunc= new function(){
var func = this,
myFunc = function(){
alert(func.value);
};
myFunc.set = function(value){
func.value = value;
}
return myFunc;
};

someview.cshtml

<script>
myFunc.set('@(myValueFromModel)');
myFunc();//can be called repeatedly now
</script>

关于javascript - 外部 Javascript 中的 Razor 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com