在ASP.NET嵌入式代码块中使用Request.QueryString

时间:2018-11-15 16:58:38

标签: asp.net web-applications parameters

我试图在单击按钮后通过URL将参数从一个文件传递到另一个文件。这些都是使用Express.js(index.ejsitems.ejs)编写的。

目前,我正在定义的Javascript函数中设置URL参数:

function loadItems(page, subcategory) {
    window.history.pushState(null, null, "?subcat=" + subcategory) //param set
    $('#mainContent').load(page);
}

其中subcategory是不断变化的变量。

从那里开始,我试图在用嵌入式代码块编写的ASP.NET函数中读取此参数。

<% if(items[i].subcategory === Request.QueryString["subcat"].Value) { %> //get param
    <% if (items[i].status === "Supported") { %>
        <tr class="success">
            <td><a href="/items/edit/<%= items[i]._id%>" data-toggle="modal" data-target="#editModal">Edit</a></td>
            <td id="item name"><%= items[i].name%></td>
            <td id="subcat name"><%= items[i].subcategory%></td>
            <td id="item status"><%= items[i].status%></td>
            <td id="item desc"><%= items[i].description%></td>
        </tr>

但是我遇到一个错误,该错误指出Request is not defined和上述if语句的回调。据我了解,在ASP.NET方面,Request.QueryStringSystem.Web.HttpContext.Current的一部分。

我该如何将其包含在代码块中,以便能够从URL中提取参数?或者,如果这不是解决此问题的方法,那么我应该如何解决呢?

1 个答案:

答案 0 :(得分:0)

我的建议是在后面使用代码。嵌入式代码块是asp时代的老派历史。但是,如果必须,那么您应该可以执行以下操作:

<%@ Page Language="VB" %>
<script run=server>
    Protected Function GetSubcat() As String
      Return Request.QueryString["subcat"].Value
    End Function
</script>

<form id="form1" runat="server">
   Subcat value is <% =GetSubcat()%>.
</form>