MVC-3 Ajax.ActionLink nicht funktioniert

Ich bin Herumspielen mit der einige MvcMusicStore Beispiel shop und habe einige Probleme mit dem MVC3 Ajax.ActionLink /Ajax.RouteLink Helfer. Das problem ist, dass es einfach nicht erzeugen einer Ajax-Anfrage (Request.IsAjaxRequest() == false). Die Formen, ich bin der Generierung mit Hilfe des Ajax.BeginForm /Ajax.BeginRouteForm sind schön funktioniert aber.

Config:

<appSettings>
    <add key="ClientValidationEnabled" 
         value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" 
         value="true"/>
</appSettings>

Scripts:

    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

Link:

@Ajax.ActionLink("show cart", "Show", "Cart", new AjaxOptions() { OnSuccess = "handleSuccess", HttpMethod = "Get", OnFailure = "handleFailure" })

Generieren HTML:

<a data-ajax="true" data-ajax-failure="handleFailure" data-ajax-method="Get" data-ajax-success="handleSuccess" href="/Cart/Show">show cart</a>

Wie gesagt, das funktioniert gut:

@using (Ajax.BeginForm(
        "Show",
        new { controller = "Cart" },
        new AjaxOptions
        {
            OnSuccess = "handleSuccess",
            OnFailure = "handleFailure"
        }))
    {
        <input type="submit" class="button" />
    }

Die Aktion sieht wie folgt aus:

[Authorize]     
public ActionResult Show()
{
    if (Request.IsAjaxRequest())
    {
        ViewBag.CartItems = ShoppingCart.GetCart(this)
            .Items;

        return Json(new AjaxResultViewModel()
        {
            Content = RenderPartialViewToString(),
            UpdateTargetSelector = "#dialog",
            InsertionMode = InsertionMode.InsertBefore
        }, JsonRequestBehavior.AllowGet);
    }

    ViewBag.Exception = new NotSupportedException();
    return View("Error");
}

Ich habe gesucht, für eine Weile jetzt, und nicht finden konnte, der Grund für dieses Verhalten, vielleicht könnte jemand mir helfen?

Beste Grüße!

InformationsquelleAutor malice | 2011-05-20

Schreibe einen Kommentar