2009-10-15 2 views
3

텍스트 상자 하나와 제출 버튼 하나만있는 간단한 양식이 있습니다. 양식은 기본적으로 텍스트 상자의 값을 쿼리 문자열로 사용하여 다른 페이지로 보냅니다. 이미 가지고 내 HomeController에 액션이 mysite.com/Test1ASP.NET MVC - FormMethod 다시 작성. 쿼리 문자열 가져 오기?

:

mysite.com/?TargetCode=Test1 

내가 그것을이 형식으로 표시 할 것입니다 : 내가 제출 버튼을 클릭하면, 쿼리 문자열 예를 들어,이 형식에 "TargetCode"를 쿼리 문자열로 사용하고 있으며, 이미 해당 라우팅을 Global.ascx.cs에 설정했습니다. 쿼리 문자열을 다시 작성하여 URL에 "? TargetCode ="가 없도록하려면 어떻게해야합니까? 다음은 내가 가지고있는 양식의 코드입니다.

<% using (Html.BeginForm("Index", "Home", FormMethod.Get, new { id = "CodeForm" })) 

감사합니다. Kenny.

+0

정확한 중복 : http://stackoverflow.com/questions/1573566/mvc-routing-doesnt-pickup-querystring –

+0

사실 내 색인 (문자열 대상) 액션에 관한 한 내 다른 질문은하지 픽업 쿼리 문자열을한다 , 이제는 잘 작동합니다. 이 질문은 내 URL을 다시 쓰는 방법에 관한 것입니다. 감사합니다 :) –

답변

0

제출물을 작성하려면 jQuery를 사용해야하며 브라우저가 URL을 구성하는 방법에 따라 달라질 것입니다. 유효성 검사 플러그인에 후크를 포함하도록을 업데이트했습니다.

$('#CodeForm').submit(function() { 
    var $form = $(this); 
    if ($form.valid()) { 
     window.location.href = $form.attr('action') 
            + '/' 
            + $('[name=TargetCode]').val(); 
    } 
    return false; 
}); 
+0

안녕하세요 tvanfosson, 나는 또한 텍스트 상자에 값 (필수 필드가 있는지 확인하는 jQuery 유효성 검사 라이브러리를 사용하고 있습니다.) 당신이 게시 된 jQuery 함수를 사용할 때 유효성 검사를 통과하지 못했습니다. 여기에 내가 무엇을 가지고 : $ (문서) .ready은 (함수() { $ ("# CodeForm은")) (검증; $ ('#의 CodeForm'() 함수() { 창을 제출합니다..return false; }); });} .location.href = '/'+ $ ('[name = TargetCode]'). 감사합니다. Kenny. –

+0

제출하기 전에 양식이 유효한지 확인하십시오. – tvanfosson

+0

고맙습니다. 업데이트 된 코드가 제대로 작동합니다! –

관련 문제