Как я могу получить параметры из URL-адреса

Я пишу aspx, чтобы пользователи могли проверить имя файла и создать файл с этим именем

URL-адрес

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

как я могу проанализировать параметр "Текст" и показать в текстовом поле?

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

текстовое поле aspx - это, я пробовал

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

но это не сработало

Кто-нибудь может мне помочь?

Ответ 1

Чтобы получить значение для http get Parameter:

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

затем установите текст текстового поля

Name.Text = testParameter

Также настоятельно рекомендуется не брать контент непосредственно с URL-адреса, так как вредоносный контент может быть введен таким образом на вашу страницу. ASP предлагает некоторую защиту от этого, но по-прежнему считается хорошей практикой.

Ответ 2

Если вы хотите получить текстовое значение из Querystring, вам нужно использовать:

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

Затем вы можете привязать его к текстовому свойству TextBox Name:

 Name.Text = text;

Update: Вы можете инициализировать значения параметров управления сервером только на событии PageLoad.

Ответ 3

Собственно, это было бы

string value = Name.Text;

Ответ 4

Кажется, что вам не хватает и в вашем URL-адресе между 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>

Однако, если вы запустите это сейчас, оно не будет работать, так как вам нужно будет вызвать DataBind() в вашей PageLoad, как это показано

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

Это должно делать так, как вам хочется, хотя, вероятно, проще просто сделать это прямо в вашей PageLoad, как это -

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

Ответ 5

Если у вас нет доступа к коду позади (общее ограничение в SharePoint), вы можете использовать JavaScript "взломать", чтобы заполнить текстовое поле значением 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>

Обратите внимание, что это не хорошая практика, просто способ, когда вы не можете сделать решение лучшей практики.