2009-10-20 90 views
0

我知道如何在asp.net页面之间传递值,如果它在相同的虚拟网站上,但是我的网站在不同的虚拟网站上呢?可能吗?ASP.NET在单独的虚拟路径中传递值

说我有此站点1

本地主机/搜索/ search.aspx

然后我有此站点2处理从站点1

本地主机/结果/ result.aspx结果 - >通知这是不同的虚拟站点1

现在我将如何将搜索网站的结果传递到结果网站。

会这样吗?

回答

0

ASP.NET Button Web Control有一个PostBackUrl。您可以使用它来将search.aspx中的帖子发送到result.aspx。

+0

这不是我的意思,我没有暗示怎么办重定向,而是如何传递一个值或对象在重定向/转移期间。 – Juvil 2009-10-20 08:40:03

0

是的,您可以通过设置搜索按钮的PostBackUrl属性来回发到虚拟应用程序的页面,然后通过Page.PreviousPage从页面发送访问控制值。

+0

嗯...也许我不能解释得很好,你可以看到site1和site2有不同的虚拟路径,这意味着Page.PreviousPage根本不起作用,或者可能是我的错误。 – Juvil 2009-10-20 08:44:53

0

1)Querystring方法。通过表单

Request.QueryString["q"] 

2)或POST变量 - :构建一个链接,像这样: -

用(C#)把它捡起来在你的代码隐藏。

在你的搜索页面: -

<form action="/result/result.aspx" method="post"> 
    <input name="searchTerm" id="searchTerm" type="text" /> 
    <input name="go" type="submit" /> 
</form> 

注意缺少表单上runat="server"标签。

把它捡起来在搜索结果页的代码隐藏为: -

Request.Form["searchTerm"] 
+0

是不是很容易受到XSS?除了试图以对象形式传递结果之外,我也不喜欢将它作为xml传递。 你有其他方法吗? – Juvil 2009-10-20 10:23:06

+0

您的目标是将搜索词从一个虚拟目录中的页面传递到另一个虚拟目录中的页面,是不是? 我在这里建议的是,你使用基本的GET和POST来传递这些信息。 你在这里传递的只是文字。 – 2009-10-20 10:45:12

+0

啊好的,从头开始。你真的想要传递结果吗?我花了太多的存货“然后我有这个site2处理site1的结果”。 为什么你在初始搜索表单上处理结果?你不能在结果页面上做这些事情吗? – 2009-10-20 10:47:59