最佳答案
我正在开发一个 web 应用程序,其中主页包含两部分: 常量块(总是可见)和信息块(由3个部分视图之一组成)。每个部分视图都作为 AJAX 请求的结果出现,并且只加载一次(在 jquery 提供切换窗口之后)。效果不错,但我遇到了一个问题。
部分视图的 html 代码包含常量块和 info-block 中使用的 js 函数。当加载页面时,这些函数可以“看到”对方,它可以工作,但 resharper 无法找到函数声明并提醒我这一点。我不能解决这个问题,把他们转移到外部 js 文件,因为剃刀的语法,可以在他们的代码中找到。
我能用这个做什么?
谢谢。
更新:
最后,我决定解决将 js 代码与视图分离的问题。因此,新的问题是如何在 js 文件中包含剃刀语法,或者什么是可以接受的替代方案。我找到的流行解决方案是使用全局变量、数据属性和我更喜欢的一个—— John Katsiotis 的 RazorJS 库。
Http://djsolid.net/blog/razorjs——-write-razor-inside-your-javascript-files
我希望它能稳定工作,让 Resharper 高兴。
干杯!
更新:
三年后,我想起了这个问题,并决定根据我的经验更新它。事实上,现在我不建议为此使用其他库。特别是如果你不是项目团队中唯一的成员... ... 如果你在所有的库中都能得到保证,那就更好了,因为它们得到了创建者和社区的支持,并且可以很容易地集成到 IDE 中(如果使用特殊的语法的话)。而且你队里的所有人都应该知道它是如何工作的。所以现在我建议做下一件事:
例如:
Js 文件:
$.api.someInitFunction = function(resources){ ... }
观看内容:
<script>
$.api.someInitFunction({
urls: { myAction: '@Url.Action("MyAction", "MyController")' },
messages: { error: '@errorMessage' },
consts: { myConst: @myIntConst }
});
</script>