2013-04-02 62 views
7

我正在使用ASP.Net 4与MVC的网站上工作。我对WebForms & javascript非常熟悉,并且使用过jQuery,但捆绑使我感到困惑。从我所知道的情况来看,所有的javascript文件都被包装在BundleConfig.cs中,并且通过site.master文件中的头文件进行下载。所以,我应该能够将我的附加功能和jquery调用放入新标签中。如何在asp.net mvc 4中使用jquery?

但很明显,jquery函数应该进入文件的方式与我以前完​​全不同,而且我根本无法获得任何操作。

是否有任何简短的教程可以告诉我在MVC中这样做的正确方法?而不是剃刀,我不需要两条学习曲线。

+0

不确定是什么导致我的jquery无法运行,但它消失了。如果我找出问题所在,我会回复。 – Random

回答

1

我不明白你的问题,但你知道捆绑是什么吗?首先,看看这个artciel来了解完整功能: http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

你不需要在asp.net mvc中使用B​​undles。您可以将其从项目中删除,并在布局页面中添加javascript文件,而不会出现任何问题。你可以手动添加到布局页面,并将你的功能添加到另一个js文件中,并包含在视图(或布局)中。与WebForms相比,Asp.Net MVC是另一个应用程序。

剃刀是一个视图引擎,您可以使用@焦炭,样品编写服务器端代码:@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

11

没有“正确”的方式在MVC做到这一点,这是给你完全。

有几种常见的方法可以做到这一点。

通过将JQuery函数放置在script标签 (例如,

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

然而,这一般不建议使用,因为它使你的JS更难管理和再利用和腌你的HTML。如果你有一小段脚本,你可能只会这样做,并不认为值得创建一个新文件。

或者,您可以将您的html放置在单独的js文件中,并在您的视图中包含对这些文件的引用。

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

这是更好,因为它允许重复使用,不臃肿你的HTML,加上浏览器能够缓存它。

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

创建你的js在分离文件,并将您的自定义代码在那里。

将此放在App_Start \ BundleConfig.cs

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

添加呼叫呈现捆绑在你看来

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

,这会使得你的JS在minfied和合并的方式,可以是通过浏览器缓存。

您可以对此进行配置。选择如何捆绑你的js文件,制作多少实际的js文件,渲染它们的位置等。

相关问题