2016-04-14 17 views
1

tıklandığında yönteme veri göndermek için aramam Ana sayfamdan tıklatılan dil türünü App_code klasörüne surfacecontroller klasörüne göndermeye çalışıyorum. Benim HTML aşağıda şu şekildedir:Jquery Ajax Bir href'e tıklandığında

<div class="navbar-topbar clearfix"> 
    <div class="h5 pull-right"> 
     <span class="linkCA"> 
      <strong>CA</strong> 
      <a class="lang=en-CA" href="@NewUrlLink">EN</a> | 
      <a class="lang=fr-CA" href="@NewUrlLink">FR</a> 
     </span> 
     <span class="linkUS"> 
      <strong>US</strong> 
      <a class="lang=en-US" href="@NewUrlLink">EN</a> 
     </span> 
    </div> 
</div> 

Yani ne sınıf adını alma ve a tıklandığında AJAX çağrı yoluyla göndermek olduğunu düşünüyorum. Ben dilin türünü geçmek istiyorum bu yöntem tıklandığında adres: Neye ihtiyacım benziyor bu AJAX yöntemi çevrimiçi gördüm ama ihtiyacı ile çalışmak için lantÛlarÛyla bilmiyorum

public string GetDictionaryItemByCulture(string key, string language) 
{ 
    var currentLang = System.Threading.Thread.CurrentThread.CurrentCulture.ToString(); 
    var otherLang = myCulture(language); 
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(otherLang); 
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(otherLang); 

    // String noLastSegment = Request.Url.AbsolutePath; 
    string x = new UmbracoHelper().GetDictionaryValue(key); 

    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(currentLang); 
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(currentLang); 

    return x; 
} 

. Gönderen

<div class="navbar-topbar clearfix"> 
    <div class="h5 pull-right"> 
     <span class="linkCA"> 
      <strong>CA</strong> 
      <a data-lang="en-CA" class="lang-trigger" href="@NewUrlLink">EN</a> | 
      <a data-lang="fr-CA" class="lang-trigger" href="@NewUrlLink">FR</a> 
     </span> 
     <span class="linkUS"> 
      <strong>US</strong> 
      <a data-lang="en-US" class="lang-trigger" href="@NewUrlLink">EN</a> 
     </span> 
    </div> 
</div> 

: Her a olay işleyicisi eklenebilir ortak sınıf verilmiş olan

$(document).ready(function() { 
    // Add the page method call as an onclick handler for the div. 
    $("#Result").click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetDate", 
      data: { someParameter: "some value" }, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
       // Replace the div's content with the page method's return. 
       $("#Result").text(msg.d); 
      } 
     }); 
    }); 
}); 

cevap

0

Öncelikle, HTML'nize bir data-* özelliğindeki yerel değer yerleştirmek için daha iyi bir uygulama olacaktır Orada a tıklamasını çınlatabilir, data-lang özniteliğini okuyabilir ve bilgileri gönderebilirsiniz:

$('.lang-trigger').click(function() { 
    var $a = $(this); 
    $.ajax({ 
     type: "POST", 
     url: "GetDictionaryItemByCulture/", 
     data: { 
      key: 'whatever this value should be...', 
      lang: $a.data('lang') 
     }, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      console.log(msg); 
     } 
    }); 
});