2012-03-24 14 views
0

Ich verwende Fancybox 1.3.4 mit ASP.NET MVC 3.Fanycbox 1.3.4 Ajax Problem mit ASP.NET MVC

Ich habe folgenden Link:

<a id="various" href="Like/List/@feed.Id" class="petlikeCount liked">@feed.LikeCount</a> 

und auch jquery:

<script type="text/javascript"> 
     $(document).ready(function() { 

      $("#various").fancybox({ 
       type: 'ajax' 
      });    

     });   
</script> 

Controller-Aktion in wie Controller:

public JsonResult List(int id) 
     { 
      return Json("success", JsonRequestBehavior.AllowGet); 
     } 

Mein Problem ist, dass Like/Liste nie aufgerufen wird (mit dem Haltepunkt markiert) und fancybox erscheint nur und zeigt Inhalt von „Eltern“ Seite ....

ich auch mit iframe Inhalt versuchte Rückkehr reine html zurück, aber ich bekomme dasselbe merkwürdige Verhalten wie oben.

Vielen Dank im Voraus!

+0

Probieren Sie 'Url.Action' aus, anstatt die href zu codieren. – Andreas

Antwort

1

Ich würde empfehlen, Sie HTML-Helfer anstelle von hartzucodieren Anker:

@Html.ActionLink(
    feed.LikeCount, 
    "List", 
    "Like", 
    new { id = feed.Id }, 
    new { id = "various", @class = "petlikeCount liked" } 
) 

Eine andere Sache, die Sie sicher machen sollte, ist, dass die feed.Id tatsächlich eine Integer-Variable ist, so dass, wenn die Liste Aktion aufgerufen wird, ist es Diese ID wurde korrekt übergeben.

Ihre URL sollte also etwa so aussehen: /List/Like/123. Und dann angenommen, dass Sie die Standardroute beibehalten haben und einige benutzerdefinierte Routen nicht durcheinander gebracht haben, sollte die List-Aktion aufgerufen werden und die richtige ID als Argument übergeben werden.

Auch ich würde Ihnen sehr empfehlen, ein JavaScript-Debugging-Tool in Ihrem Browser wie FireBug zu verwenden, in dem Sie potenzielle Fehler mit Ihren Skripten sowie die tatsächlichen AJAX-Anfragen sehen können, die Ihnen erlauben werden, zu sehen leichter debuggen solche Probleme.