0

私のビューには、ユーザーからのスキャンをキャプチャする単一のテキスト ボックスがあります。スキャンは、それ以上のユーザー操作なしで、スキャンされたデータを使用してトランザクションを完了する別のアクションに渡されます。これまでのところ、テキストボックスにスキャンが取り込まれ、すぐにリダイレクトされますが、テキストボックスの内容はありません。これは私が持っているものです。

意見:

<input id="thisText" class="largetext" name="txtScanLabel"  onkeyup="myKeyUp" />

と:

  <script type="text/javascript">
   var tResults = "Test";

       $(function () {
           $('input.largetext').focus();
       });

       $(function () {
           $("#thisText").keyup(myKeyUp);
       });

       function myKeyUp(eventInstance) {
           var myURL = '@Url.Action("ScanResults", "Home")';
           window.location.href = myURL + '?tResults' + encodeURIComponent(tResults);
       }

   </script>

コントローラ:

    public ActionResult ScanResults(string tResults)
    {

        var test = tResults;                     

        return RedirectToAction("Success");

    }
4

3 に答える 3

2

.keyupjQuery を使用して目立たないようにイベント ハンドラーをサブスクライブしましたonkeyupが、DOM で属性を使用しました。この2つを行う必要はありません。jQueryを使えば十分です。したがって、マークアップをきれいにすることから始めます。

<input id="thisText" class="largetext" name="txtScanLabel" />

また、javascriptにtResults値をハードコーディングしました。Testグローバル変数からこのハードコードされた値 (取り除くことができる) を使用する代わりに、テキスト ボックスから値を読み取る必要があります。

function myKeyUp(eventInstance) {
    var myURL = '@Url.Action("ScanResults", "Home")';
    var value = $(this).val();
    window.location.href = myURL + '?tResults=' + encodeURIComponent(value);
}

ユーザーが入力フィールドに何かを入力するwindow.location.hrefと、すぐにコントローラ アクションにリダイレクトされることに注意してください。ScanResultsあなたはおそらくAJAXを使いたいでしょう:

function myKeyUp(eventInstance) {
    var myURL = '@Url.Action("ScanResults", "Home")';
    $.ajax({
        url: myURL,
        type: 'POST',
        data: { tResults: $(this).val() },
        success: function(result) {
            // do something with the result returned by the controller action
        }
    });
}
于 2012-06-11T19:17:19.733 に答える
0

あなたの「テストは今のままでは機能しないので、おそらくこれが必要です:

       window.location.href = myURL + '?tResults' + encodeURIComponent(tResults); 

への変更

       tResults = $('#thisText').val();
       window.location.href = myURL + '?tResults=' + encodeURIComponent(tResults); 

そこにある重要な等号を忘れないでください。

于 2012-06-11T19:30:35.140 に答える
0

コントローラー アクションに [HttpPost] 属性が含まれていません。

于 2012-06-11T19:19:34.427 に答える