3

这看起来很简单,但我到处搜索,找不到简单的方法来做到这一点。我有一个带有搜索按钮的文本框,我正在调用一个操作结果,它将在数据库中搜索与我的文本框中的内容匹配的值。一切都按预期工作,除了我的操作结果(在 javascript click 函数中从 razor 调用)需要文本框中的参数(var 策略),并且我找不到在我的 razor 操作结果调用中使用该值的方法。

这是我的文本框和处理它的 javascript。“PolicyNum =”是我试图传递“var policy”值的地方

文本框:

<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

使用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 回答