提问人:nGX 提问时间:10/7/2011 最后编辑:nGX 更新时间:4/8/2013 访问量:487
ASP.net 4.0 c 中的可选参数#
Optional parameter in ASP.net 4.0 c#
问:
我有一个内置于 ASP.NET 4.0 的网站,目前我有一个带有 URL 的下拉框,一个转到该 URL 并解析文本的按钮,最后是一个包含解析文本的结果框。
我想做的不是去我的网站并在下拉框中选择 URL,而是想将参数作为完整 URL 传递,并让按钮转到该 URL,然后执行其操作。有点像我可以交给用户的永久链接
例如:
http://localhost:62554/WebSite5/Default.aspx -->http://google.com
google.com 被放入一个变量(比如说它的)中,按钮会像在下拉框中一样接受它。
**更新的代码:现在在MyURL
using (StreamReader objReader = new StreamReader(objRequest.GetResponse().GetResponseStream()))
string newURL;
String url;
protected void Page_Load(object sender, EventArgs e)
{
//Request.Params.Get("newURL").ToString();
//string url = Request["newURL"];
//url = Request.QueryString["newURL"].ToString();
url = Request.QueryString["newURL"].ToString();
parseButton_Click(sender, e);
}
protected void parseButton_Click(object sender, EventArgs e)
{
//MyURL = deviceCombo.Text;
//MyURL = Request.Params.Get("");
//MyURL = Request.Params.Get("newURL");
//MyURL = newURL;
//string MyURL = Request.Params["newURL"].ToString();
WebRequest objRequest = HttpWebRequest.Create(url);
objRequest.Credentials = CredentialCache.DefaultCredentials;
using (StreamReader objReader = new StreamReader(objRequest.GetResponse().GetResponseStream()))
{
originalText.Text = objReader.ReadToEnd();
}
//Read all lines of file
String[] crString = { "<BR> " };
String[] aLines = originalText.Text.Split(crString, StringSplitOptions.RemoveEmptyEntries);
String noHtml = String.Empty;
for (int x = 0; x < aLines.Length; x++)
{
if (aLines[x].Contains(filterCombo.SelectedValue))
{
noHtml += (RemoveHTML(aLines[x]) + "\r\n");
}
}
//Print results to textbox
resultsBox.Text = String.Join(Environment.NewLine, noHtml);
}
有什么想法吗?谢谢
答:
3赞
Porco
10/7/2011
#1
你的问题很难理解,但我认为你要做的是传入 URL 中的网站字符串。我认为您要做的是使用 URL 参数,因此,如果他们转到“http://localhost:62554/Website5/default.aspx?newURL=http://google.com”,就好像他们在下拉列表中选择了 google.com 一样。
之后还有什么吗?在 URL 中被视为 URL 参数,您可以在代码隐藏中访问这些参数,如下所示:
string newURL = Request.Params.Get("newURL");
评论
0赞
nGX
10/7/2011
是的,这正是我想做的,但是我把这段代码放在哪里?
0赞
Porco
10/7/2011
将此代码放在代码隐藏的page_load部分,确保将其包装在 if (!IsPostBack),这样它只会在他们第一次点击页面时发生。
1赞
Kirk
10/7/2011
#2
您可以从 Request 对象获取 URL 变量。
string url = Request["newURL"];
把它放在任何你喜欢的地方,比如Page_Load
protected void Page_Load(object sender, EventArgs e)
{
string url = Request["newURL"];
}
评论
0赞
Kirk
10/7/2011
你能发布更多的代码和你传递的 URL 吗?这应该没问题,问题一定在别处。
0赞
nGX
10/7/2011
我用我的代码更新了原始问题,我得到了 url,但它在 'using (StreamReader objReader = new StreamReader(objRequest.GetResponse() 时崩溃。GetResponseStream())) '
0赞
Porco
10/7/2011
我认为像这样调用按钮事件处理程序是一个坏主意,您的事件处理程序应该只获取 URL 并将其传递给执行该工作的函数。与page_load相同,您应该从请求参数中获取 URL,然后调用该函数。
上一个:后台工作线程
评论