webform方式,每个aspx页面都会引用一个独立的js文件,比如pageA.aspx,会引用一个pageA.js文件,js文件里写一些load和bind事件。
现在换成MVC方式,由于想在视图中(比如index.cshtml),引用同样的js文件,使用:
<script type="text/javascript" src="@url.context("....../pageA.js")"/> 这种 方式无效,VS运行起来,看不到pageA.js文件被加载。
使用@Script.Render("....../pageA.js") 方式,在bundleConfig 文件中设置,同样无效。
使用<script>alert(123);</script> 也无效!
问题:
1、在Razor视图引擎下,像之前的js文件引用方式还是否适用,要如何引用?
2、Razor视图引擎下,是否有更好的 js 脚本的书写方法?
3、是不是Razor已经不再写js了,应该不会吧?
1. Razor视图引擎下推荐用@Script.Render, 之前引用JS的方法还是可以用的, 找到母版页就可以了.
2. Razor视图引擎下一般都推荐用@Script.Render,如果你的文件没有被加载,说明 bundleConfig 设置的有问题
3. Razor是一种视图引擎,跟用不用JS其实没有绝对的关系, 一般问题是,你的项目需不需要用的JS
@{ BundleTable.Bundles.Add(new ScriptBundle("~/Scripts/pageA.min.js").Include("~/Scripts/pageA.js")); }
@Script.Render("~/Scripts/pageA.min.js")
--------------------------------------------------------------------
目录结构是这样的
/
/Scripts
/Scripts/pageA.js (这个文件必须存在)
<script type="text/javascript" src="/Administration/Scripts/jquery.js"></script>
这样呢?没感觉有啥区别
煞笔
项目急,记得当时好像是哪里引用写错了,还是引用的位置有问题,反正解决了,这个帖子后来给忘了,不好意思各位解答的朋友。
现在我在view中引用js,都是使用
@Script.Render("....../pageA.js") 方式,在bundleConfig 文件中设置;
推荐在bundleConfig中配置一些常用的js,在_Layout.cshtml中引用公共的,在单个view中引用独立的。
当时不知道怎么抽风,就是没反应。