我有两个MVC Razor视图(.cshtml),它们的Javascript功能几乎相同。
为了去复制我的javascript代码,我希望将Javascript从视图中提取到一个包含函数的外部Javascript文件(.js)中(使用一个参数来区分每个视图所需的细微差别)。
视图中的Javascript包含Razor语法,用于访问许多asp.net资源文件(.resx)文本值(例如var foo =‘@ResourceFileName.Bar’),Razor引擎不幸没有解析这些文本值。
为了克服这一问题,我可以将所有资源文件文本值作为参数传递给.js文件中的函数,但我不喜欢这样做,因为参数列表会变得非常大。
RazorJS包(http://www.nuget.org/packages/RazorJS)允许我在.js文件中使用Razor语法,但是这个包上一次发布是在2011年,这让我很担心。
在没有庞大的长参数列表的情况下,我可以使用什么技术来调用外部化函数?
发布于 2015-04-13 15:18:16
在没有庞大的长参数列表的情况下,我可以使用什么技术来调用外部化函数?
它不需要是一个庞大的参数列表。包含所有必要资源属性的单个参数就足够了:
<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
}
https://stackoverflow.com/questions/29608893
复制相似问题