簡體   English   中英

我可以在不使用查詢字符串或會話的情況下將值傳遞給頁面嗎?

[英]Can I pass a value to a page without using query strings or sessions?

我創建了一個Web應用程序,其中有兩個菜單加載相同的頁面。 我需要檢查頁面中的條件,以便我可以根據傳遞給該頁面的變量加載不同的數據。 但是,我不想使用查詢字符串,因為這需要使用不同的URL,這會干擾SEO。

有沒有辦法在不使用查詢字符串或會話數據的情況下執行此操作? 我需要在主頁面中單擊不同的鏈接時傳遞不同的值。

使用PreviousPage屬性中的引用,可以在源頁面上搜索控件並提取其值。 您通常使用FindControl方法執行此操作。

使用PreviousPage.FindControl(“yourcontrolname”)

這些鏈接可以幫助您

如何:在ASP.NET網頁之間傳遞值

PreviousPage屬性

您可以使用javascript將數據發布到您的頁面 ,也可以使用隱藏的字段或cookie

如果URL與查詢字符串參數有關(並且您不想要會話 - 例如由於進程內存儲),那么另外兩個答案,那么使用Web爬蟲增加排名的一種替代方法是ASP.NET路由

你可以通過多種方式傳遞價值觀。 使用會話,cookie,查詢字符串,隱藏輸入。 我個人覺得存儲菜單導航的查詢字符串不是問題,除非他知道確切的查詢字符串參數。

您可以嘗試其他方法, 在webforms之間傳遞值

試試window.location.hash: https//developer.mozilla.org/en/DOM/window.location

您可以在URL中的#之后存儲數據。 這就是Twitter的作用。

如果您的查詢字符串問題只是更改網址,您可以使用post方法使用隱藏輸入發送數據。 像這樣:

<form  action="products.aspx" method="post">
...
<input type="hidden" id="field1" value="value1"/>
</form>

或者使用ajax。 您可以通過帶有ajax的javascript發送http請求。 在這種情況下,沒有網址更改或其他東西。 這是一個例子:

<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("mainDiv").innerHTML=xmlhttp.responseText; //changing the menu
    }
  }
params="field1="+document.getElementById("field1").value;
xmlhttp.open("POST","products.aspx",true);
xmlhttp.send(params);
}
</script>

我建議調查規范鏈接。

使用它,你可以有兩種不同的URL形式,例如bob.aspx和bob.aspx?input = whatever,搜索引擎只會在其索引中包含其中一種(例如第一種)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM