2012-09-07 21 views
5

मैं थंबनेल सूची प्रदर्शित एक सरल पृष्ठ है,यूआरएल में # वर्ण क्यों जोड़ा जाता है?

मैं एक पेजर जोड़ने के लिए करना चाहते हैं, मैं कार्रवाई

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

लिंक जब मैं लिंक मैं

पर पुनः निर्देशित कर रहा हूँ पर क्लिक करें दो जोड़ लिया है
http://localhost:41626/#/Home/Paginate?nbSkip=60 

बजाय

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

का किसी को पता है क्यों '#' यूआरएल में चरित्र जोड़ा गया है?

मार्ग 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 } 
     ); 
    } 
} 

उत्तर

2

की ui-pagination-nextim assuming jQuery मोबाइल अपने li वर्ग को देख से यहां इस्तेमाल किया जा रहा है।

jQuery मोबाइल डिफ़ॉल्ट रूप से, makes your links AJAX enabled


आप चाहें, तो आप का उपयोग करके यह रोका जा सकता है:

$.mobile.ajaxLinksEnabled = false; 

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

सवाल यह कैसे हल करने के लिए, लेकिन हैश क्या है नहीं था और क्यों यह –

+0

@ParvSharma पुन: स्वरूपित प्रयोग किया जाता है मेरी जवाब। मेरा उत्तर दस्तावेज लिंक प्रदान करता है कि यह क्यों है, और – Curt

+0

एडब्ल्यूएसएम को अक्षम करने का विकल्प अब यह है .. –

0

अगर मैं तुम्हें थे, मैं अजाक्स का प्रयोग करेंगे रॉ एक्शनलिंक:

@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

अपने कोड को देखकर मैं मिल सकता है ui-pagination-next
इसका मतलब यह हो सकता है कि कुछ अन्य जे एस ढांचे वास्तव में इस लिंक पर क्लिक करें घटनाओं को सुनने और ajax
हैश किसी तरह का कर रही है "#" चरित्र इतना है कि किया जा रहा है वास्तव में ब्राउज़र पृष्ठ पर रीडायरेक्ट नहीं करता है और साथ ही इतिहास
बनाए रखता है, इसलिए यदि आप ब्राउज़र को वापस बटन दबाते हैं तो # के बाद लिंक का यह अतिरिक्त चोटी हटा दिया जाता है और ईवेट के लिए सब्सक्राइब किए गए किसी भी जेएस फ्रेमवर्क को जानता है कि इसे कैसे संभालना है

सरल शर्तों में।
url में सर्वर पर नहीं भेजा गया है।चूंकि कुछ जेएस ढांचे AJAX भाग को संभालने में कामयाब रहे हैं, यह नहीं चाहता कि अनुरोध सीधे सर्वर पर जाना चाहिए और साथ ही ब्राउजर एड्रेस बार में उचित दिखाना चाहिए, इसलिए # के बाद लिंक में जो कुछ भी है, उसे जोड़ता है और आगे बढ़ता है AJAX
साथ
heres एक गहराई से वापस लिए हैश और का उपयोग कर लेख को आगे

0

आप अपने सभी प्रतिक्रिया के लिए धन्यवाद,

अच्छी तरह से @curt देखा, वास्तव में मैं jQuery मोबाइल का उपयोग कर रहा है, और क्या समस्या पैदा कर रहा था mobile.changePage

अब मैं फेंक पृष्ठों पर नेविगेट करने के लिए सरल बटन का उपयोग कर रहा हूं, लेकिन

$.mobile.ajaxLinksEnabled = false; 

AJAX लिंक के साथ मेरी समस्या का समाधान नहीं करता है। तो मैं इस किया है, और यह अपने विवरण के लिए अब

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

धन्यवाद @Parv शर्मा काम कर रहा है

संबंधित मुद्दे