我已經創建了一個Web應用程序,其中有兩個加載相同頁面的菜單。我需要檢查頁面中的條件,以便根據傳遞給此頁面的變量加載不同的數據。但是,我不想使用查詢字符串,因爲這需要使用不同的URL,這會干擾SEO。我可以在不使用查詢字符串或會話的情況下將值傳遞給頁面嗎?
有沒有辦法做到這一點,而不使用查詢字符串或會話數據?我需要通過點擊母版頁中的不同鏈接來傳遞不同的值。
我已經創建了一個Web應用程序,其中有兩個加載相同頁面的菜單。我需要檢查頁面中的條件,以便根據傳遞給此頁面的變量加載不同的數據。但是,我不想使用查詢字符串,因爲這需要使用不同的URL,這會干擾SEO。我可以在不使用查詢字符串或會話的情況下將值傳遞給頁面嗎?
有沒有辦法做到這一點,而不使用查詢字符串或會話數據?我需要通過點擊母版頁中的不同鏈接來傳遞不同的值。
使用PreviousPage屬性中的引用,可以搜索源頁面上的控件並提取它們的值。您通常使用FindControl方法執行此操作。
使用PreviousPage.FindControl( 「yourcontrolname」)
這些鏈接可以幫助你
您可以通過多種方式傳遞值。使用會話,cookie,查詢字符串,隱藏輸入。 我個人覺得存儲查詢字符串菜單導航它沒有問題,直到除非他知道確切的查詢字符串參數。
你可以試試這個其他方法, Passing Values between webforms
@ Ravi-它的客戶端要求,應該沒有變化在網址中,所以查詢字符串不應該使用..可能是我應該嘗試隱藏的輸入..感謝您的反饋 – Karthik
您可以使用javascript to post data to you page或者您可以使用隱藏字段或餅乾
隨着其他兩個答案,如果URL是值得關注的查詢字符串參數(並且你不想要會話 - 例如由於進程內存儲),那麼用網絡爬蟲增加排名的一個替代方法是ASP.NET Routing。
謝謝..我沒有任何想法.. ..現在看看它 – Karthik
嘗試window.location.hash:https://developer.mozilla.org/en/DOM/window.location
您可以在#在URL後存儲數據。這就是Twitter所做的。
如果您的查詢字符串問題只是URL更改,您可以使用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>
我會建議尋找到canonical links.
利用這一點,你可以有兩種不同的URL形式,例如bob.aspx和bob.aspx?inp ut = whatever,搜索引擎將只包含其中一個(例如第一)在其指數。
我需要避免查詢字符串的原因是,這些網址已被seo團隊使用,並通過谷歌索引,因此添加查詢字符串可能會導致url不匹配問題 – Karthik