Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量作为Razor参数_Javascript_C#_Jquery_Asp.net Mvc_Razor - Fatal编程技术网

Javascript变量作为Razor参数

Javascript变量作为Razor参数,javascript,c#,jquery,asp.net-mvc,razor,Javascript,C#,Jquery,Asp.net Mvc,Razor,这看起来很简单,但我到处都找遍了,找不到一个简单的方法。我有一个带有搜索按钮的文本框,我正在调用一个操作结果,该结果将在数据库中搜索与文本框中内容匹配的值。除了我的操作结果(在javascript单击函数中从razor调用)需要文本框中的参数(var策略)之外,所有操作都按预期进行,我找不到在razor操作结果调用中使用该值的方法 这是我的文本框和处理它的javascript。“PolicyNum=”是我试图传递“var policy”值的位置” 文本框: <span class="k-t

这看起来很简单,但我到处都找遍了,找不到一个简单的方法。我有一个带有搜索按钮的文本框,我正在调用一个操作结果,该结果将在数据库中搜索与文本框中内容匹配的值。除了我的操作结果(在javascript单击函数中从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>

这些代码都位于我的主视图中。

Razor运行服务器端,JS客户端。您需要在Razor中提供一个无参数URL,并使用JS在其中设置ID。比如:

location = '@Url.Action("SearchByPolicy")' + policy;

你不可能通过这种方式实现你想要的。您的困惑是可以理解的:Razor变量在HTML和JS执行之前呈现

使用URL方法将是更好的服务器

$(function () {
    $("#polSearch").click(function () {
        var policy = $("#polText").val();
        location = '{Controller}/SearchByPolicy/" + policy';
    });
});
使用而不是
元素

@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");
    });
});

您不能简单地将
href
设置为您的操作url吗?不需要javascript。如果其他人说razor将在html之前呈现,则不需要。这对链接有效,但我仍然需要从texbox中获取参数。实际上,Razor在服务器上呈现html和javascript,然后将其发送到浏览器,在那里解析、执行和显示。聪明。处理渲染前的问题。
$(function () {
    $("#polSearch").click(function () {
        var policy = $("#polText").val();
        location = $(this).attr("href");
    });
});