geçirilmesi URL - '&' sonra her şey kaybolursa

2016-04-05 18 views
0

Ben Model.MyApiCall @geçirilmesi URL - '&' sonra her şey kaybolursa

<a href="javascript://" onclick="@Model.MyApiCall"></a> 

şuna benzer bir dizedir

onclick olayı bir API çağrı yapan bir MVC uygulaması:

window.location = 'http://localhost/myPath?myImagePath=http://myimagepath&width=360&category=2' 

Bu başarıyla benim API çağırır. Çok uzak çok iyi. Ancak, bazı nedenlerden dolayı &'dan sonraki her şey myImagePath'den kesiliyor. Bunun yerine myImagePath benim tıklama gönderilen ne eşit, ben sadece bu alıyorum:

http://myimagepath 

cevap

0

işareti (&) özel karakter ve düzgün tarayıcı tarafından ayrıştırılması için kodlanması gerekir. Sorgu dizenizi ve gerçek yolunuzu ayrı dizelere ayırmanız gerekir. Böyle bir şey: Eğer sorgu dize parametresini kodlamak zorunda

window.location = 'http://localhost/myPath?myImagePath=http%3A%2F%2Fmyimagepath%26width%3D360%26category%3D2'; 
+0

teşekkür ederiz, bu ihtiyacım olan şey. – JAck28

1

:

<a href="javascript://" onclick="@(Model.MyApiCallPath + 
HttpUtility.UrlEncode(Model.MyApiCallQueryString))"></a> 

Nihai js gibi bir şey olacaktır. Sen javascript yapabilirsiniz: encodeURIComponent kullanarak

window.location = 'http://localhost/myPath?myImagePath=' + encodeURIComponent('http://myimagepath') + '&width=360&category=2' 

.

Ayrıca, Model.MyApiCall ürününüzün http://myimagepath bölümünü kullanarak, MVC denetleyicinizin için HttpUtility.UrlEncode'u kullanarak da yapabilirsiniz.

[Düzenle]

sizin myImagePath parametre tüm http://myimagepath&width=360&category=2 dize ise, tabii ki Steve Danner sağ ve sen onun cevabını takip etmelidir.

0

Url parametresi olarak bir url iletmeye çalışıyorsunuz. Söz konusu url özel karakterler içerdiğinden, uri bileşenlerinden çıkmanız/kodlamanız gerekir. Eğer ASP.Net kullanarak konum beri

, sizinle dize sarın olmalıdır:

window.location = Uri.EscapeUriString('http://localhost/myPathmyImagePath=http://myimagepath&width=360&category=2') 

 İlgili konular

  • İlgili sorun yok^_^