2012-09-07 18 views
5

Ich habe eine einfache Seite Thumbnail-Liste angezeigt wird,Warum wird der URL ein # -Zeichen hinzugefügt?

Ich möchte einen Pager hinzuzufügen, i zwei Aktions Links

hinzugefügt haben
<li class="ui-pagination-next">@Html.ActionLink("Next", "Paginate", "Home", new { nbSkip = ViewBag.nextSkip }, null)</li> 

, wenn ich auf den Link klicken i

umgeleitet bin
http://localhost:41626/#/Home/Paginate?nbSkip=60 

statt

http://localhost:41626/Home/Paginate?nbSkip=60 , 

weiß jemand, warum die '#' Zeichen wird der URL hinzugefügt?

Strecke copnfig:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 

Antwort

2

Von Ihnen li Klasse von ui-pagination-nextim assuming jQuery Mobile Suche wird hier verwendet wird.

jQuery Mobile standardmäßig makes your links AJAX enabled


Wenn Sie möchten, können Sie dies verhindern, indem Sie:

$.mobile.ajaxLinksEnabled = false; 

<script type="text/javascript"> 
    $(function(){ 
     $.mobile.ajaxLinksEnabled = false; 
    }); 
</script> 
+0

die Frage war nicht, wie dieses Problem zu lösen, aber was ist Hash und warum wird es verwendet –

+0

@ParvSharma Reformatted meine Antworten. Meine Antwort enthält Dokumentationsverknüpfungen, warum dies vorhanden ist, und die Option, – Curt

+0

AWSM zu deaktivieren, ist jetzt. –

0

Wenn ich Sie wäre, würde ich Ajax verwenden Raw ActionLink:

@Ajax.RawActionLink("NameofLink", "Action", "Controller", new { oid = 0, type = "oid and type are 2 parameters you want to send to action " }, new { id = "btnNewB", @class = "anyclass" }) 
4

, indem Sie den Code suchen, könnte ich finde ui-pagination-next
dies bedeuten könnte, dass eine andere JS Rahmen tatsächlich auf die Click-Ereignisse dieser Verbindung zuhört und eine Art von Ajax zu tun
Hash "#" Zeichen verwendet wird, so dass tatsächlich Der Browser leitet die Seite nicht weiter und behält gleichzeitig den Verlauf
bei, wenn Sie die Zurück-Taste des Browsers drücken, wird dieser zusätzliche Teil des Links nach entfernt und jedes JS-Framework, das dem EVet zugewiesen wurde, weiß, wie es dann behandelt wird.

in einfacheren Begriffen.
alles nach dem in einem url wird nicht an den Server gesendet.Da ein JS-Framework den Ajax-Teil behandelt, möchte es nicht, dass die Anfrage direkt an den Server geht und gleichzeitig in der Adressleiste des Browsers angezeigt wird, fügt also alles hinzu, was Sie in der Verknüpfung nach dem # haben und macht weiter mit AJAX

heres ein eingehenden Artikel Hash für Rücken mit und nach vorn

0

Danke alle für Ihre Antworten,

gut @curt gesehen, in der Tat bin ich mit jQuery Mobile, und dem, was das Problem verursacht wurde ist mobile.changePage

Jetzt benutze ich einfache Schaltfläche zum Navigieren werfen Seiten, aber

$.mobile.ajaxLinksEnabled = false; 

Löst nicht mein Problem mit Ajax Link's. Also habe ich das getan, und es funktioniert jetzt

@Html.ActionLink("Previous", "Index", new { nbSkip = ViewBag.previousSkip }, new { data_role = "button", data_icon = "arrow-l", rel = "external", data_ajax = false }) 

Dank @Parv Sharma für Ihre Erklärung

Verwandte Themen