JavaScriptResult的使用
知道有JavaScriptResult這東西,用猜也一定是回傳JavaScript程式碼,
…恩…基本上是沒錯啦,但實際要應用時卻是頻頻撞牆。
例如要利用JavaScriptResult寫入alert("massage")程式碼跳出訊息要如何做?
View為
@{
ViewBag.Title = "Home Page";
}
@Ajax.ActionLink("alert", "DisplayAlertMessage", null)
Controller為
using System.Web.Mvc;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult DisplayAlertMessage()
{
return JavaScript("alert('這是一個用 JavaScriptResult 的顯示結果');");
}
}
}
結果卻為

不是alert應該要跳出確認訊息嗎?怎麼會是把程式碼直接秀在頁面上?
原來使用JavaScriptResult時還需要「事前準備」
在前端使用Ajax.ActionLink、Ajax.BeginForm、配合AjaxOptions屬性等方法,
或是於後端使用JavaScriptResult時,事前必須要準備
(1)、於Package Manager Console安裝Ajax適配器
指令為Install-Package Microsoft.jQuery.Unobtrusive.Ajax
(2)、需在Html原始碼裡安裝該適配器,如下,注意安裝順序不可對調
<script src="∼/Scripts/jquery-1.10.2.js"></script> <script src="∼/Scripts/jquery.unobtrusive-ajax.js"></script>
(3)、另外注意於Web.config檔是否有添加或開啟UnobtrusiveJavaScriptEnabled
<configuration> <appSettings> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> </configuration>
(4)、確認你的瀏灠器是否開啟javascript功能
我是把jquery.unobtrusive-ajax.js加在_Layout.cshtml裡

再重新執行一次

成功!!!