Javascript 如何在视图中包含js文件。ASP.NETMVC4
我想知道为什么我的js文件在视图中调用时可以工作:Javascript 如何在视图中包含js文件。ASP.NETMVC4,javascript,asp.net-mvc-4,Javascript,Asp.net Mvc 4,我想知道为什么我的js文件在视图中调用时可以工作: @section Scripts { <script> function myFunction() { alert("Hello1"); } </script> } @节脚本{ 函数myFunction(){ 警报(“Hello1”); } } 但当我称之为: @section Scripts { <script type="te
@section Scripts {
<script>
function myFunction() {
alert("Hello1");
}
</script>
}
@节脚本{
函数myFunction(){
警报(“Hello1”);
}
}
但当我称之为:
@section Scripts {
<script type="text/javascript" src="~/Views/Home/script.js"></script>
<script>
myFunction();
</script>
}
@节脚本{
myFunction();
}
这是因为在~/Views/
文件夹中无法访问.js
文件。你必须这么做
要启用对视图文件夹中.js
文件的访问,您可以将以下内容直接添加到视图文件夹的web.config中的handlers
标记下:
<add name="JavaScriptHandler"
path="*.js"
verb="*"
preCondition="integratedMode"
type="System.Web.StaticFileHandler" />
更好的做法是将Js文件放在脚本文件夹中并从那里访问它。您可以在view的头部编写此代码以使用js文件
@Scripts.Render("~/Scripts/script.js")
您必须在Bundle配置中添加脚本:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js", "~/Views/Home/script.js"));
这对我很有效您应该将rendersection添加到视图使用的布局页面中
@RenderSection("scripts", required: false)
这两个文件看起来都像Razor
文件?第一个文件是_布局,第二个文件是使用布局的视图吗?我正在视图中工作。但是使用“@section Scripts”时,我希望在浏览器中运行时将脚本放置在_布局中。谢谢。只是一个旁注。。。实际上,我把脚本放在了Views文件夹中。我做了一些事情,比如在visual studio中有视图/Home/Contact.cshtml
并嵌套在文件下面(使用扩展名),我有视图/Home/Contact.js
和视图/Home/Contact.less
。然后,我的构建脚本会适当地选择这些文件。实际上,这样做可以节省大量时间。David,你能详细介绍一下你的构建脚本的功能吗?我也喜欢这个想法,我正在花很多时间努力寻找相关文件…@codea抱歉,这让人困惑。因为我有一个构建脚本,它可以缩小并连接脚本,而不是让它在脚本文件夹中搜索脚本-~/scripts/***.js
-它搜索视图文件夹-~/Views/***.js
,因为它们现在存储在那里。
@RenderSection("scripts", required: false)