2013-05-09 13 views

Odpowiedz

12

Możesz to zrobić za pomocą javascript. generować najpierw taga z href o sfałszowane wartość Imię:

<a href="@Url.Action("Search", "Controller", new {firstname="xxxx"}") id="lnk">Search</a> 

również wygenerować z identyfikatorem (tj txtSearch).

Następnie za pomocą javascript można załączyć zdarzenie click tego. Użycie kodu jQuery będzie wyglądało następująco:

$("#lnk").click(function(evt) { 
    var fakedUri = $("#lnk").prop("href"); 
    var uri = fakedUri.replace("xxxx", $("#txtSearch").val()); 
}); 

Pozdrowienia!

+0

Witam, próbuję użyć Twojego kodu, ale otrzymuję XXXX w moim kontrolerze, a nie wartość pola tekstowego . czy jest coś, czego mi brakuje? –

+4

Ok Mam rozwiązanie. Potrzebowałem tylko dodać uri jako lnk's href prop. $ ("# lnk"). prop ("href", uri); zrobił lewy. –

+1

@Jeżeli właśnie uratowałeś mnie od godzin zastanawiania się, dlaczego to nie zadziałało. Ponadto, .prop() nie była dostępna w mojej wersji jquery, musiałem użyć .attr() dla każdego innego z tym problemem. Dzięki – Drewdin

1

Trzeba użyć formularza

<form method="post" action="@Url.Action("Search", "Search")"> 
    @Html.Textbox("value") 
</form> 
+0

jest możliwe bez użycia formularza, ponieważ planujemy wprowadzić funkcję wyszukiwania na stronie indeksu ... – Muralikrishna

+2

tak, możesz użyć Javascript, aby wykonać POST do adresu URL. jQuery AJAX jest przydatna do tego - http://api.jquery.com/jQuery.ajax/ – roryok

Powiązane problemy