我們都知道在aspx頁面的cs文件中只要用Respos.Write("<script></scritp>")就可以在前台執行腳本
但是在MVC中就不一樣了,返回腳本要給定腳本類型返回。如果是使用js或者jq的ajax去請求可以直接使用毀掉函數來執行返回腳本,但如果給一個button或者一個a標簽添加點擊事件時並且要求后台可以返回並執行腳本,可以有一下幾種情況。
第一,return Conten(("<script>alert('666')</scritp>"),這樣你會發現腳本也會執行但是點擊確定后會出現一片空白,這還是由於action的特殊返回條件。
第二, return JavaScript("");返回腳本,這樣會發現刷新的腳本還是可以執行但是彈窗alert()根本不會執行。對於這種用法其實才是經常用到的,這時我們只需要在標簽上添加 data-ajax-method="post" 和屬性data-ajax="true"例如:
<a class="btn" data-ajax-method="get" data-ajax="true">添加</a>
按照第二種試一下是不是完全沒問題。
如果按照上述操作還是不能執行js腳本,分析如下:
1.是否引用jquery.unobtrusive-ajax.js,這個js是ajax執行的先決條件。
2.引用js后是否在配置文件中配置UnobtrusiveJavaScriptEnabled
<appSettings> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>