这看起来很简单,但我到处搜索,找不到一个简单的方法来做到这一点。我有一个带有搜索按钮的文本框,我正在调用一个动作结果,它将在数据库中搜索与我的文本框中的内容匹配的值。一切都按预期工作,除了我的动作结果(在javascript点击函数中从剃刀调用)需要一个文本框中的参数(var policy),我找不到在剃刀动作结果调用中使用该值的方法。 / p>
这是我的文本框和处理它的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"> </a>
</span>
使用Javascript:
$(function () {
$("#polSearch").click(function () {
var policy = $("#polText").val();
location = '@Url.Action("SearchByPolicy", new { policyNum = })';
});
});
此代码全部位于我的主视图中。
答案 0 :(得分:2)
你不会以这种方式实现你想要的。您的困惑是可以理解的:Razor变量在HTML和JS执行之前呈现。
使用URL方法你会是更好的服务器
$(function () {
$("#polSearch").click(function () {
var policy = $("#polText").val();
location = '{Controller}/SearchByPolicy/" + policy';
});
});
答案 1 :(得分: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");
});
});
答案 2 :(得分:0)
Razor运行服务器端,JS客户端。您需要在Razor中提供无参数URL并使用JS在其中设置ID。类似的东西:
location = '@Url.Action("SearchByPolicy")' + policy;