我有一个应用程序,我想在没有会话的页面(视图)之间传递数据。实际上我想使用查询字符串将一些设置应用于所有页面。 例如,如果我的链接类似于“http://example.com?data=test1”,那么我想将此查询字符串附加到之后的所有链接,如果没有查询字符串,那么正常流程。
我在想,如果我们在Web应用程序的任何链接中获取查询字符串,那么可以设置一些可用于后续页面的应用程序级别用户特定属性。
谢谢, Ashwani
答案 0 :(得分:2)
您可以使用
获取查询字符串Request.Url.Query
并在指向其他页面的链接上发送。
以下是您如何查找和更改网页的想法:
public abstract class BasePage : System.Web.UI.Page
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
// now you render the page on this buffer
base.Render(htmlWriter);
// get the buffer on a string
string html = stringWriter.ToString();
// manipulate your string html, and search all your links (hope full find only the links)
// this is a simple example of replace, THAT PROBABLY not work and need fix
html = html.Replace(".aspx", ".aspx?" + Request.Url.Query);
writer.Write(html);
}
}
我不建议怎么做,我认为你必须找到其他方法来避免操纵你所有的链接......
答案 1 :(得分:0)
我不知道你试图传递什么样的数据。因为对我来说,捕捉所有链接的想法听起来很奇怪。
无论如何,我相信您可能会发现 TempData 类可以在重定向之间传递数据 。
最后警告,小心TempData
,它在MVC 1和2之间有所改变:
ASPNET MVC2: TempData Now Persists