【JavaScriptResult】在客户端执行服务器返回的JavaScript代码
当一个内置的Ajax辅助方法请求一个操作方法,该方法会返回一个在客户端执行立即的脚本。
public ActionResult DoSomething() { string s = "$(‘#some-div‘).html(‘Updated‘)"; return JavaScript(s); }
@Ajax.ActionLink("单击", "DoSomething", new AjaxOptions()); <div id="some-div"></div>
使用JavaScript的视图页面需要引用以下js,请使用NuGet安装:
@section Scripts{ <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> }
貌似使用Ajax.ActionLink跳转了页面,而不是刷新当前视图。最后通过分析发现视图代码、脚本引用均未出现问题。而是web.config中缺少以下配置:
在appSettings节点下需要启用对JavaScript的支持,否则也是无法使用@Ajax.ActionLink的。
<appSettings> <!--<add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" />--> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>