ASP.NET MVC 3(Razor)Ajax.ActionLink - 我做错了什么?

RPM*_*984 42 ajax asp.net-mvc actionlink razor asp.net-mvc-3

尝试使用AJAX操作链接,在单击时,应该执行一个HttpGet操作方法,该方法返回PartialViewResult并将HTML推送到div中.

这是我的观点:

<div id="admin-options" class="admin"></div>
@Ajax.ActionLink("Show Admin Options", "ShowOptions", "Post", new { area = "Admin" }, new AjaxOptions { UpdateTargetId = "admin-options", HttpMethod = "GET" })
Run Code Online (Sandbox Code Playgroud)

这是动作方法:

public class PostController : Controller
{
   [HttpGet]
   [Authorize(Roles="Admin")]
   public PartialViewResult ShowOptions()
   {
      return PartialView();
   }
}
Run Code Online (Sandbox Code Playgroud)

这是它生成的HTML:

<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#admin-options" href="/Admin/Post/ShowOptions">Show Admin Options</a>
Run Code Online (Sandbox Code Playgroud)

看起来很好.

但它不是进行AJAX调用,而是通过浏览器URL进行常规HTTP GET,并重定向到/ Admin/Post/ShowOptions.

显然我错过了什么 - 但是什么?

Tal*_*joe 66

确保您的页面中包含不显眼的AJAX JavaScript库.

<script src="<%=Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")%>" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

  • 唉,就是这样.我有不引人注目的js但不是AJAX不引人注目的.干杯! (2认同)

psy*_*psy 48

对于那些使用Razor视图引擎的人......

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)