JavaScriptResult的使用有兩個必要的前提:
1.Ajax
2.jquery.unobtrusive-ajax.js
使用代碼示例
controller
public ActionResult JavaScriptTest() { return JavaScript("alert('Controller.JavaScriptResult test');"); }
View
<script src="~/Scripts/jquery-1.11.2.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> <!--用Ajax生成--> @Ajax.ActionLink("display", "Display", new AjaxOptions()) @using (Ajax.BeginForm("Display", new AjaxOptions())) { } <!--html代碼--> <a data-ajax="true" href="/Area/SubNode/Display">display</a> <form action="/Area/SubNode/Display?id=1" data-ajax="true" id="form0" method="post"></form>
仔細看View里面的代碼,上面的script引用加上的jquery.unobtrusive-ajax.js,下面data-ajax=true。兩者缺一不可,否則返回的網頁就不是彈框,而是網頁源代碼。
成功:
失敗:
還有一種失敗的表現形式是下載頁面文件。失敗原因都是上面的兩個方面沒有寫好。
JavaScriptResult里面的string除了可以調用系統的函數以外,還可以執行指定的js。
public ActionResult ServerMethod(int id, string name) { string result = "客戶端傳遞過來的id:" + id + ",名字:" + name; return JavaScript(@"$(""#result"").html(""" + result + @""");"); }
參考資料:http://www.tuicool.com/articles/VJR7Zv
http://mazharkaunain.blogspot.com/2011/02/how-to-use-aspnet-mvc-javascriptresult.html