簡體   English   中英

如何從url獲取參數

[英]How can I get the parameters from url

我正在編寫一個aspx,讓用戶檢查文件名並創建一個具有該名稱的文件

網址是

/sites/usitp/_layouts/CreateWebPage.aspx?List=%7b74AB081E-59FB-45A5-876D-
                             284607DA03C6%7d&RootFolder=%3bText=%27SD_RMDS%27

如何解析參數'Text'並顯示在文本框中?

<div>
    <asp:TextBox id="Name" runat="server" />
</div>

aspx文本框就是這個,我試過了

<asp:TextBox id="Name" runat="server" text=<%$Request.QueryString['Text']%>></asp:TextBox>>

但它不起作用

有人可以幫幫我嗎?

要獲取http get參數的值:

string testParameter = Request.QueryString["Text"];

然后設置文本框文本

Name.Text = testParameter

此外,強烈建議不要直接從網址中獲取內容,因為惡意內容可能會以這種方式注入您的網頁。 ASP提供了一些保護,仍然被認為是一種很好的做法。

如果要從Querystring獲取文本值,則需要使用:

var text = (string)Request.QueryString["Text"];

然后你可以將它綁定到TextBox Name的Text屬性:

 Name.Text = text;

更新:您只能在PageLoad事件上初始化服務器控件值。

實際上,它會

string value = Name.Text;

您似乎在RootFolder和Text之間缺少一個&,因此將其更改為 -

/sites/usitp/_layouts/CreateWebPage.aspx?List=%7b74AB081E-59FB-45A5-876D-284607DA03C6%7d&amp;RootFolder=%3b&Text=%27SD_RMDS%27

在綁定方面你幾乎是對的,這應該做到 -

<asp:TextBox id="Name" runat="server" text='<%#Request.QueryString["Text"]%>'></asp:TextBox>

但是,如果你現在運行它將無法工作,因為你需要在你的PageLoad中調用DataBind(),就像這樣

protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}

這應該按照您的意願進行,盡管在您的PageLoad中直接執行此操作可能更容易 -

Name.Text = Request.QueryString["Text"];

如果您無法訪問后面的代碼(SharePoint中的常見限制),那么您可以使用JavaScript“hack”使用URL值填充文本框。

要實現此目的,請將此代碼放在帶文本框的.aspx頁面的最底部:

<script type="text/javascript">
    var strTextBoxId = "<%=Name.ClientID%>";
    var oTextBox = document.getElementById(strTextBoxId);
    if (oTextBox) {
        oTextBox.value = "<%=Request.QueryString["Text"].Replace("\"", "\\\"")%>";
    }
    else {
        //debug
        alert("element with ID '" + strTextBoxId + "' does not exist");
    }
</script>

請注意,這不是一個好的做法,只是當你無法做出最佳實踐解決方案時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM