[英]Razor asp.net: access javascript variable
目前我有这个:
resources: [
{
field: "roomId",
name: "Rooms",
dataSource: {
transport: {
read: {
url: "@Html.Raw(
Url.Action(
"Filter_Rooms",
"Room",
new {
pFilter = false,
pCapacity = 25,
pBeamer = true,
pTelevision = false
}))",
dataType: "json"
},
}
}
}
]
这些参数pFilter = false, pCapacity = 25, pBeamer = true, pTelevision = false
,现在已经对该过滤器进行了硬编码,但实际上我希望它们来自:
的HTML
<div class="checkbox">
<label>
<input id="chkBeamer" type="checkbox"> Beamer available
</label>
</div>
<a href="#" id="btnFilter" class="btn btn-outline btn-primary btn-lg btn-block">Filter rooms</a>
Java脚本
$(document).ready(function () {
$("#btnFilter").click(function () {
var pFilter = document.getElementById("chkBeamer").checked;
});
});
我可以让JavaScript使用pFilter
参数代替硬编码的参数吗?
隐藏的
<div class="checkbox">
<label>
@Html.Hidden("pBeamer", true);
<input id="chkBeamer" type="checkbox"> Beamer available
</label>
</div>
Javascript资源
resources: [
{
field: "roomId",
name: "Rooms",
dataSource: {
transport: {
read: {
url: "@Html.Raw(
Url.Action(
"Filter_Rooms",
"Room",
new {
pBeamer = ("#pBeamer")???
}))",
dataType: "json"
},
}
}
}
]
您可以通过两种方式执行此操作:
1)您可以为这四个字段中的每一个都具有隐藏字段,您可以单击btnFilter
来填写Javascript函数。 使用resources
访问那些隐藏的字段。
@Html.Hidden("pFilter","<value>");
您可以在下面的代码中访问这些隐藏的字段。
resources: [
{
field: "roomId",
name: "Rooms",
dataSource: {
transport: {
read: {
url: "@Html.Raw(
Url.Action(
"Filter_Rooms",
"Room",
new {
pFilter = <get value from hidden field>,
pCapacity = <get value from hidden field>,
pBeamer = <get value from hidden field>,
pTelevision = <get value from hidden field>
}))",
dataType: "json"
},
}
}
}
]
2)您可以具有全局变量,您可以在btnFilter
click上为其分配值,并像当前一样在resources
使用它。
我建议您遵循第一个解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.