Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有长参数列表的情况下调用外部.js文件javascript函数_Javascript_Asp.net Mvc_Razor - Fatal编程技术网

在没有长参数列表的情况下调用外部.js文件javascript函数

在没有长参数列表的情况下调用外部.js文件javascript函数,javascript,asp.net-mvc,razor,Javascript,Asp.net Mvc,Razor,我有两个MVC Razor视图(.cshtml),其中包含几乎相同的Javascript函数 为了消除重复的javascript代码,我想将javascript从视图中提取到一个包含函数的外部javascript文件(.js)(带有一个参数,可用于区分每个视图所需的细微差异) 视图中的Javascript包含Razor语法,用于访问许多asp.net资源文件(.resx)文本值(例如var foo='@ResourceFileName.Bar';),不幸的是,Razor引擎没有为我解析这些值 为

我有两个MVC Razor视图(.cshtml),其中包含几乎相同的Javascript函数

为了消除重复的javascript代码,我想将javascript从视图中提取到一个包含函数的外部javascript文件(.js)(带有一个参数,可用于区分每个视图所需的细微差异)

视图中的Javascript包含Razor语法,用于访问许多asp.net资源文件(.resx)文本值(例如var foo='@ResourceFileName.Bar';),不幸的是,Razor引擎没有为我解析这些值

为了克服这个问题,我可以将所有资源文件文本值作为参数传递给.js文件中的函数,但我不希望这样做,因为参数列表会变得非常大

RazorJS包()允许我在.js文件中使用Razor语法,但这个包上一次发布是在2011年,这让我很担心

我可以使用什么技术来调用外部化函数,而不需要庞大的长参数列表

我可以使用什么技术来调用外部化函数而不使用 一个很长的参数列表

它不需要是一个庞大的参数列表。包含所有必要资源属性的单个参数就足够了:

<script>
    var args = @Html.Raw(Json.Encode(new 
    {
        foo = ResourceFileName.Foo,
        bar = ResourceFileName.Bar,
        baz = ResourceFileName.Baz
    }));
    myFunction(args);
</script>
function myFunction(args) {
    // you can use args.foo, args.bar and args.baz here
}