﻿# ASP.NET MVC 5 遺失的 Microsoft jQuery Unobtrusive Ajax 函式庫

以前在開發 ASP.NET MVC 4 的時候，Visual Studio 的專案範本中本身就已經包含了 [Microsoft jQuery Unobtrusive Ajax](https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax) 這個 NuGet 套件，所以當你想用 **@Ajax** 輔助方法時，自然不會遇到什麼困難。打從 ASP.NET MVC 5 開始，Visual Studio 2013 的專案範本改成預設不安裝 [Microsoft jQuery Unobtrusive Ajax](https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax) 套件，想用的時候不是安裝一下就好嗎？我自己一直這樣認為，所以不覺得有什麼不對，不過前陣子還是有同事剛從 ASP.NET MVC 4 升級到 ASP.NET MVC 5，他在第一次開發 ASP.NET MVC 5 專案時剛好也有用到 @Ajax 輔助方法，還是被卡關了一些時間，因此特別撰文提醒這個問題。

如果要安裝這個套件，可參考以下步驟圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a31a8763899e793d0f76-image_2537.png)

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/08bc4ff081b36bdc7a0c-image5_thumb.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/4b3ac67444db623b412b-image5.png)

也可以直接在**套件管理器主控台**輸入以下指令：

PM> **Install-Package Microsoft.jQuery.Unobtrusive.Ajax**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/8e1638cc43bf836a5927-image_2539.png)

安裝成功後，請記得要將 **jquery.unobtrusive-ajax.js** 或 **jquery.unobtrusive-ajax.min.js** 檔案載入到頁面中，且要載入在 jQuery 函式庫之後，這樣才可以讓 **@Ajax** 正常運作。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/301fbc90317dda59ab65-image_2540.png)

以下是 **App\_Start\\BundleConfig.cs** 這隻程式的程式碼範例：

```
bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include(            "~/Scripts/jquery.unobtrusive-ajax*"));
```

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d4951864e206ab1265f3-image_2541.png)

以下是將 Bundle 過的網址加入到頁面中的語法範例：

```
@Scripts.Render("~/bundles/jqueryajax")
```

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/469669bbdf808e5857ef-image_2542.png)

**相關連結**

-   [NuGet Gallery | Microsoft jQuery Unobtrusive Ajax 3.2.2](https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/3.2.2) ( ASP.NET MVC 5 專用 )
-   [NuGet Gallery | Microsoft jQuery Unobtrusive Ajax 2.0.30506](https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/2.0.30506) ( ASP.NET MVC 4 專用 )
-   [AjaxExtensions 方法 (System.Web.Mvc.Ajax)](http://msdn.microsoft.com/zh-tw/library/system.web.mvc.ajax.ajaxextensions_methods\(v=vs.118\).aspx)
-   [ASP.NET MVC 4: cannot modify jQuery Unobtrusive Ajax - Stack Overflow](http://stackoverflow.com/questions/15372108/asp-net-mvc-4-cannot-modify-jquery-unobtrusive-ajax)
-   [Brad Wilson: Unobtrusive Ajax in ASP.NET MVC 3](http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-ajax.html)
-   [Bundling and Minification | The ASP.NET Site](https://www.asp.net/mvc/overview/performance/bundling-and-minification)
-   [A Bumbling Bundler: Fixing IncludeDirectory()](http://timgthomas.com/2013/12/a-bumbling-bundler-fixing-includedirectory/)
