Razor asp.net:访问javascript变量

本文关键字:javascript 变量 访问 asp net Razor | 更新日期: 2023-09-27 18:04:50

目前我有这个:

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,对于过滤器现在是硬编码的,但实际上我想要它们来自:

<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>
Javascript

$(document).ready(function () {
    $("#btnFilter").click(function () {
        var pFilter = document.getElementById("chkBeamer").checked;        
    });
});

我可以让javascript使用pFilter参数而不是硬编码的?


HTMLHidden

<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"
                },
            }
        }
    }
]

Razor asp.net:访问javascript变量

有两种方法可以做到:-

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上赋值,点击并在resources中使用它,就像你现在做的那样。

我建议你采用第一个解决方案。