Как я могу получить параметры из 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&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>
Обратите внимание, что это не хорошая практика, просто способ, когда вы не можете сделать решение лучшей практики.