繁体   English   中英

Razor asp.net:访问JavaScript变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM