2011-02-10 6 views
0

제 견해 중 하나에서 커서를 놓고 리더기를 통해 MagCard를 스캔하는 입력 필드가 있습니다. 그 결과 jQuery를 통해 잡아 내 양식을 처리 할 다른 페이지에 게시하는 ENTER (char 13)로 끝나는 해당 상자에 일련의 문자가 나타납니다.MVC3 면도칼> 입력란

기본적으로 컨트롤러에서 입력 상자의 문자열을 사용할 수 있기 때문에 자바 스크립트를 통해 모든 클라이언트 측에서 수행하는 대신 C# 함수를 사용하여 처리 할 수 ​​있습니다.

클라이언트 코드에서 관리 코드에 값을 가져 오는 것은 지금까지 발견 한 모든 가이드를 벗어난 것으로 보입니다.

도움이되는 이유는 무엇이겠습니까? POST해야하는 이유는 얻을 수없는 이유는 특수 문자,? 및 공백이 필요하므로 보존해야합니다.

모든 방법이 가치가 있습니다.

@ 다린 디미트로프 불투명합니다.

귀하의 제안이 효과가 있고 필요한 부분으로 나를 안내 할 때. (이것은 무엇이든지 상관없이 알 수 있습니다.)

반환 값을 원하지 않기 때문에 홈/ProcessScan에 내 양식의 작업으로 게시하려고했습니다. 그럼 내 컨트롤러 에서이 만들 :

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult ProcessScan(string scanSeek) 
    { 
     string myScan = scanSeek; 
     string name = myScan.Substring(1, 13); 
     return Redirect("../reservation?name=" + name); 
    } 

그리고 지금 나를 위해 작동합니다.
* 리디렉션 앞에

주에 반환 필요가 있기 때문에
은 *, void가 아니라, ActionResult 내 유형을 변경 [AcceptVerbs (HttpVerbs.Post)] 선언을 사용하여 내 리디렉션을 위해 내가 사용 "을했다 ../ "이보기는 집 아래에 없기 때문에.

답변

1

많은 세부 정보를 제공하지 않으므로 혼란 스럽습니다. 분명히 onfocusonclick과 같은 이벤트는 클라이언트 측 javascript를 통해서만 처리 할 수 ​​있습니다. 당신은 jQuery와 POST를 언급하므로 AJAX에 대해 이야기하고 있다고 가정합니다.

$.post('@Url.Action("Foo")', { value: $('#mytextboxid').val() }, function(result) { 
    // the value was successfully posted to the server 
}); 

를 서버에 다음과 같은 컨트롤러 액션 것 : 그래서 당신은 다음과 같은 값을 보낼 수

public ActionResult Foo(string value) 
{ 
    // TODO: do something with the value and return a corresponding result 
} 
1

는 당신이 Action을 가질 수 magCardCode 있도록의 입력 아이디이라고 가정 해 봅시다을 인수가 필요합니다 : string magCardCode.

<script> 
    $(document).ready(function() { 
     $("#submitForm").click(function() { 
      $.ajax({ 
       url: '/MagCard/SubmitCode/, 
       dataType: 'html', 
       type: 'POST', 
       success: function (data) { 
        // Use data 
      }); 
     }); 

    }); 
</script> 

을 이제 값은 액션에서 accessable 한 것입니다 :이 시나리오에서는

당신은 단순히 다음과 같이 JQuery와 아약스를 사용하여 양식을 게시 할 수 있습니다!