是否可以从外部javascript文件调用Razor @function?

时间:2015-11-04 15:20:01

标签: javascript razor

我正在尝试在我的WEB API中解决CSRF问题。我正在尝试实施here所示的解决方案。

据我所知,我需要在Razor代码中创建一个@function {...}块,我已经完成了。 (基本上与文章中的功能相同)

PNum

然后我有一个外部.js文件试图通过以下方法调用此方法:

NULL

我的“TokenHeaderValue()”方法永远不会被调用,而且我可以在Fiddler中看到“RequestVerificationToken:@TokenHeaderValue()”的文字字符串是传递的内容,而不是“TokenHeaderValue()”的返回结果。

这里发生了什么?为什么不会发生对“TokenHeaderValue()”的实际调用?

1 个答案:

答案 0 :(得分:0)

如果您使用全局变量并在JavaScript中引用它,它应该可以工作。

在你的Razor视图中:

<script>window._csrfToken = '@TokenHeaderValue()';</script>

在你的JS文件中:

$.ajax({
    //...
    headers: {
        'RequestVerificationToken': window._csrfToken
    },
    //...
});