【问题标题】:How to bind QueryStringParameter in the Page component without using Code Behind如何在页面组件中绑定 QueryStringParameter 而不使用 Code Behind
【发布时间】:2012-12-20 07:52:56
【问题描述】:

我想直接在我的页面中绑定一些查询字符串参数,而不是使用后面的代码。我知道可以在后面的C#代码中使用Request.QueryString["param"].ToString();,但是我想直接绑定。

类似:

<asp:HyperLink ID="Add" runat="server" NavigateUrl='<%#Eval(Request.QueryString["param"], "~/PartnerOffice.aspx?partnerId={0}") %>' Text="Add New Office" />

这可能吗?

谢谢,吉克拉

【问题讨论】:

    标签: c# asp.net query-string


    【解决方案1】:

    如果您只是导航到另一个页面,为什么要使用asp:HyperLink?只需使用常规的 &lt;a&gt; 标记并将您的 QueryString 参数添加到它:

    <a href="~/PartnerOffice.aspx?partnerId=<%= Request.QueryString["param"] %>">Add New Office</a>
    

    编辑:

    您不能在服务器端控件中使用代码块。来自a related question

    您不能在 a 中使用代码块(&lt;%%&gt;&lt;%=%&gt; 和 服务器端控制。绑定表达式 (&lt;%#%&gt;) 是不同的 问题。

    您需要了解shortcut server side code blocks 之间的差异,只是随机尝试不同的,因为您 似乎在做什么不会教你什么。

    您可以在代码隐藏文件中分配值:

    TextBox1.Text = DateTime.Now.Date.ToString("dd-MM-yyyy");
    

    【讨论】:

    • 好的,这可行,但是 - 我不能在简单的 html 链接中使用 ~/ 路径,其次,我只是在徘徊,为什么这么简单的事情这么困难。
    • 没错,您不能使用 ~/ 但您可以使用 / 进入您网站的根目录并从那里导航。我想我不明白这种工作方式有什么困难。是什么让它变得困难?
    • 困难的是我不能在常规的asp.net组件中使用Request.QueryString["param"]。
    • 啊,真的。您不能在服务器端控件中使用代码块。我已经更新了我的答案。
    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2020-07-08
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多