yes*_*man 8 javascript asp.net asp.net-mvc jquery razor
目前,我已将jQuery源文件添加到我的ASP.NET项目的Scripts文件夹中.在_Layout.cshtml页面中,我包含了〜/ Scripts/jquery-2.1.1.min.js.现在,我可以在每个页面上包含jQuery代码:
If this page shows a popup I was succesfull.
<script>
$(document).ready(function(){
alert("works!");
});
</script>
Run Code Online (Sandbox Code Playgroud)
但是,我不想在每个视图中都包含完整的脚本.我更喜欢创建一个单独的JS文件,将它放在我的Scripts文件夹中,然后使用Razor包含它.
@{
//Razor Magic inserting Javascript method!
}
If this page shows a popup I was succesfull.
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?是否是为单个页面包含唯一Javascript文件的"正确"方法?
Swa*_*pta 20
您可以将特定于页面的JS代码放在单独的JS文件中,并使用以下代码引用您的特定视图:
1)您需要将此部分放在_Layout.cshtml中
<head>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-2.1.1.min.js)">
@RenderSection("JavaScript", required: false)
</head>
Run Code Online (Sandbox Code Playgroud)
2)您需要将@section添加到要在其中引用JS文件的视图中 - (_ABCDView.cshtml)
@section JavaScript
{
<script type="text/javascript" src="@Url.Content("/Scripts/SampleScript2.js")"></script>
}
Run Code Online (Sandbox Code Playgroud)
注意: @ RenderSection,false,表示在使用此母版页的视图上不需要该部分,并且视图引擎将忽略视图中未定义"JavaScript"部分的事实.如果为true,则视图将不会呈现,并且除非已定义"JavaScript"部分,否则将引发错误.
你很高兴去!
希望这会帮助你.
谢谢,斯瓦蒂
在 MVC 中解决问题的最佳且优雅的方法是将Bundles
Known 称为Bundling and Minification
.
在这里查看更多信息:- http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification