如何在ASP.NET MVC 4中使用jQuery?

7
我正在使用ASP.Net 4和MVC开发一个网站。我非常熟悉WebForms和JavaScript,并且已经使用过jquery,但是捆绑(Bundling)功能让我感到困惑。据我所知,所有的JavaScript文件都包装在BundleConfig.cs中,并通过site.master文件下载头部信息。因此,我只需要将我的额外函数和jquery调用放置在新的

不确定是什么原因导致我的jQuery无法运行,但现在它消失了。如果我找出问题所在,我会回来发帖的。 - Random
2个回答

11

在MVC中没有所谓的“正确”方法,完全由您决定。

有几种常见的方法可以实现这一点。

您可以通过将它们放置在script标签中来在视图中“内联”使用JQuery函数,例如:

<script>
    $('a').click(function() { alert("Click"); } );
</script>

然而,通常不建议这样做,因为它会使您的JS难以管理和重复使用,还会使HTML变得臃肿。只有在您有一个真正小的脚本片段,并且觉得不值得为其创建新文件时,才会这样做。

另一种选择是将您的HTML放置在单独的JS文件中,并在视图中引用这些文件,例如:

<script src="~/Scripts/mycusomtjquery.js"></script>

这样更好,因为它可以重复使用而且不会使HTML变得臃肿,此外浏览器可以缓存它。

一种更好的选择是利用MVC 4中的捆绑功能并使用此功能。将您的JS放置在单独的文件中,将其注册为一个bundle,并在您的视图中呈现它,例如:

在App_Start\BundleConfig.cs中:

创建您的JS文件并将自定义代码放入其中。

bundles.Add(new ScriptBundle("~/bundles/mycustomjquery")
                    .Include("~/Scripts/mycustomjquery.js")
                    .Include("~/Scripts/myothercustomjquery.js"));

在您的视图中添加一个呈现捆绑包的调用

@Scripts.Render("~/bundles/mycustomjquery")

这将以缩小和合并的方式呈现您的js,可以被浏览器缓存。

您可以进行配置以适应不同需求。选择如何捆绑您的JS文件,创建多少实际JS文件,以及在哪里呈现它们等。


1

我不明白你的问题,但是你知道bundle是什么吗?首先,看一下这篇文章,了解完整的功能:

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

在asp.net mvc中,你不需要使用bundles。你可以从项目中删除它,并将你的javascript文件添加到布局页面中,而无需任何问题。你可以手动添加到布局页面中,并将你的函数添加到另一个js文件中,并包含在视图(或布局)中。Asp.Net MVC与WebForms相比是另一种方法。

Razor是一个视图引擎,你可以使用@字符编写服务器端代码,例如:@Html.TextBox("Name"),自从asp.net mvc 3以来我们就已经有了它,但你也可以编写ASPX引擎,例如:<%: Html.TextBox("Name") %>,就像你在WebForms中做某些事情一样。(我推荐Razor,因为它更快速、易读、易用)。

在这里了解更多关于ViewEngines的信息: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接