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

时间:2015-04-13 15:14:24

标签: javascript asp.net-mvc razor

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

为了重复删除我的javascript代码,我想将Javascript从视图中提取到包含该函数的单个外部Javascript文件(.js)(带有一个参数,可以用来区分每个的微小差异需求)视图)。

视图中的Javascript包含用于访问许多asp.net资源文件(.resx)文本值的Razor语法(例如var foo ='@ ResourceFileName.Bar';),但Razor引擎很遗憾不会为我解析。< / p>

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

RazorJS软件包(http://www.nuget.org/packages/RazorJS)允许我在.js文件中使用Razor语法,但这个软件包最后一次发布于2011年,这让我很担心。

如果没有庞大的长参数列表,我可以使用哪些技术来调用外部函数?

1 个答案:

答案 0 :(得分:2)

  

我可以使用哪些技术来调用外部化函数   一个巨大的长参数列表?

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

<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
}