在加载另一页

时间:2017-01-24 03:09:56

标签: javascript c# jquery asp.net vb.net

目前我有一个页面,当您填写文本框并单击按钮时,它会将您重定向到另一个页面。

需要加载页面,因为它会更新并显示xml。 (我目前无法改变这是怎么回事)

然而,我要做的是在页面被重定向一次后,再次重定向或者只是加载另一页。

有关xml链接的注意事项是,它的一部分是使用文本框创建的,因此它将是动态的。

我目前有一些与此相关的内容

//please note that username is a textbox, I've just left it out
<script runat = "server">
void Button_Click(Object sender, EventArgs e)
{
    var url = "http://website.com/scripts/" + username.text "/value/0"
    try
    {
        Response.Redirect(url, true);
    }
    catch(Exception ex)
    {//From what I learnt, adding true to redirect throws an exception,
     //which is how I tried executing another redirect, but it doesn't seem to
     //to load the first direct, and skips straight to this, I also put this
     //in finally, because it seemed more appropriate to no avail
        Response.Redirect(someurl, true);
    }
 }

所以我想知道这是否真的可行,我也想知道我是否只是查找错误的关键字来找到解决方案。

我已经花了一些时间在这上面,并且尚未找到某种解决方案,但我是网络开发的新手,所以我可能只是错过了一些非常简单。

另外我只是真正理解C#在asp中是如何工作的,但我愿意学习如何在必要时添加javascript或VB。

提前感谢您的帮助

编辑:解决方案!

所以我设法使用javascript将文本框值附加到xml链接,请求它而不显示用户(显示用户,在这种情况下不是必需的)。

然后弹出窗口确认它成功,然后重新加载页面。

这是非常自我解释但我所做的是

url = "website";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url, true);
window.alert("success");
return true;//this reloads the page, that or just window.location.reload();

如需更新支票,我会看看我是否可以验证用户名是否为有效用户名,如果没有,则会弹出失败文字。

3 个答案:

答案 0 :(得分:1)

你似乎对Response.Redirect(...)实际做了什么有误解。在我看来,方法名称有点误导。它建议以某种方式将当前正在执行的请求Response发送到请求浏览器以外的其他地方。这不是的情况。该名称也可能是Response.SendRedirectResponseToBrowser,因为这是Response.Redirect所做的。

因此,当您执行Response.Redirect(url)时,您告诉正在执行您的页面的服务器应该向浏览器发送响应,告诉浏览器对提供的GET请求执行url }}。然后,浏览器会执行此操作,此时页面需要包含单独的Redirect,以便进一步告知浏览器下一步的位置。

在这种情况下,需要修补"http://website.com/scripts/" + username.text "/value/0"处的页面,以便在处理完请求后,它还会发送一个重定向响应,其中包含您要在下一个显示的网址。

如果您无法控制该页面,则必须以其他方式解决此问题。一些选择:

  • 使用ajax申请"http://website.com/scripts/" + username.text "/value/0"网址。然后在完成后将页面位置设置为您要在下一个显示的网址。
  • 打开http://website.com/....目标中的_blank网址,然后将其设置为下一页的位置。
  • 在代码隐藏方法中使用System.Net.Http.HttpClient来请求http://website.com/....网址,然后进行重定向。这意味着服务器在处理按钮单击时请求URL。

注意:

  • 如果http://website.com/....网址更新某些状态(比如存储数据库中的某些更改或类似内容),那么使用POST请求请求,而不是{ {1}}。 GET请求可以获得缓存响应,这意味着服务器可能永远不会真正看到请求,因此不会进行任何处理。
  • 拼凑这样的网址GET看起来很危险。您应该至少在网址上对"http://website.com/scripts/" + username.text "/value/0" - username.text进行编码。更好的是,第一次验证输入的用户名实际上是有效的用户名。

答案 1 :(得分:0)

您可以将Refresh header元元刷新元素)添加到包含XML的响应中。在标题中,您可以指定另一个URL以及重定向之前等待的秒数。

答案 2 :(得分:0)

我想它应该使用JavaScript(前端)而不是后端错误处理,因为它会转到另一个页面。使用promise来处理异常