2011-01-04 16 views
10

Spoiler alert: to TERAZ pytanie, więc przeprosiny każdemu, kto go czytają wyłącznie jako dyskursywnej temacie :)ASP.NET MVC JavaScript Routing

Zresztą, robiłem trochę badań dziś ponownie dodawałem trasy przez javascript, gdy myślałem, że trochę badań google nie zaszkodzi. Zasadniczo, moim celem było pozbycie się z następujących typów konstruktu w moich poglądów:

alt text

i zastąpić go czymś pokrewnym do:

alt text

dobrze, poszczęściło mało dzisiaj po znalezieniu tego fantastycznego artykułu (który nie jest mój ani nie mam żadnego powiązania innego niż szacunek dla pracy):

http://weblogs.asp.net/zowens/archive/2010/12/20/asp-net-mvc-javascript-routing.aspx

To naprawdę był brakujący link (lub tak mi się zdawało) dla mnie, gdy zajmowałem się trasami przez javascript. Jednak drugi przykład kodu jest wprowadzający w błąd i w rzeczywistości nie wytworzy tego, o czym świadczy przykład. Czy ktokolwiek może zaproponować poprawkę dla tego i/lub alternatywnego rozwiązania pozwalającego na płynną konwencję tras js w widokach mvc?

okrzyki ...

[edytuj] - pytanie edytowane 22:16 GMT do zbadania głębszych opcje na ten temat, a także zmienił tytuł (usunięto OT część).

+0

** Alert spoilera **: Stack Overflow jest dla pytań. –

+0

Nathan - tak, docenione. tak naprawdę chciałem dodać ten mały ** OT ** nugget do miksu. ogon między nogami - ouch/touche itp :) !! –

+0

Och, wygląda na to, że ktoś podłącza mój mały domowy projekt: D – zowens

Odpowiedz

5

Pytanie brzmi, dlaczego drugi przykład kodu nie działa zgodnie z oczekiwaniami. Oto odpowiedź, wpis obecnie niczego nie zwraca. Jest to przykład jakiegoś programisty, który nie patrzy na szczegóły kodu. Kiedy używasz homePageUrl, wartość będzie niezdefiniowana.

Aby faktycznie uzyskać adres URL strony startowej, można wykonać następujące czynności:

$.routeManager.action({controller:'Home', action:'Index'}).toUrl() 

Więc morał tej historii jest to, że kod jest nieco uszkodzony. Akcja post powinna zwrócić obiekt, gdzie można umieścić „toUrl()” jest wykonywana zaraz po poście, tak:

$.routeManager.action({controller:'Home', action:'Index'}) 
       .post(function(data){ alert(data); }) 
       .toUrl(); 

będę naprawienie tego błędu w kawałku!

+2

+1 - dla skromnej odpowiedzi;). plus mały tyłek, ponieważ to jest odpowiedź - tak ... dzięki! –

+1

Naprawiono to teraz ... Nie mogę uwierzyć, że umieściłem to w moim poście na blogu. Muszę być trochę bardziej ostrożny! – zowens

+1

zack - nawet "najlepszy" z nas może spaść na nasze miecze :-). sprawdzi aktualizację później i jeszcze raz dziękuję. –