3

これは本当に簡単に思えますが、私はどこでも検索しましたが、これを行う簡単な方法を見つけることができません。検索ボタン付きのテキストボックスがあり、テキストボックスにあるものと一致する値をデータベースで検索するアクション結果を呼び出しています。アクション結果(javascriptクリック関数内のかみそりから呼び出される)がテキストボックス(varポリシー)にあるもののパラメーターを必要とし、かみそりアクション結果呼び出し内でその値を使用する方法を見つけることができないことを除いて、すべてが期待どおりに機能します。

これは私のテキストボックスとそれを処理するJavaScriptです。"PolicyNum ="は、"varpolicy"の値を渡そうとしている場所です

テキストボックス:

<span class="k-textbox k-space-right" style="width: 185px">
    <input id="polText" type="text" />
    <a id="polSearch" href="#" class="k-icon k-i-search">&nbsp;</a>
</span>

Javascript:

$(function () {
    $("#polSearch").click(function () {
        var policy = $("#polText").val();
        location = '@Url.Action("SearchByPolicy", new { policyNum =  })';
    });
});

このコードはすべて私のメインビューにあります。

4

3 に答える 3

2

あなたはこの方法であなたが望むことを達成するつもりはありません。あなたの混乱は理解できます:Razor変数はHTMLとJSが実行される前にレンダリングします。

あなたはURLアプローチを使用してより良いサーバーになるでしょう

$(function () {
    $("#polSearch").click(function () {
        var policy = $("#polText").val();
        location = '{Controller}/SearchByPolicy/" + policy';
    });
});
于 2013-03-06T15:50:39.663 に答える
1

elementの代わりにHtml.ActionLinkを使用しaます。

@Html.ActionLink("Action", "Controller", 
    new { policy = ""}, 
    new { id = "polSearch", class="k-icon k-i-search"})

脚本

$(function () {
    $("#polSearch").click(function () {
        var policy = $("#polText").val();
        location = $(this).attr("href");
    });
});
于 2013-03-06T15:56:26.443 に答える
0

Razorはサーバーサイド、JSクライアントサイドを実行します。RazorでパラメータなしのURLを指定し、JSを使用してIDを設定する必要があります。何かのようなもの:

location = '@Url.Action("SearchByPolicy")' + policy;
于 2013-03-06T15:48:34.870 に答える