2011-11-25 25 views
0

在MVC3應用程序中,推薦的方法是存儲控制器,操作&查詢頁面的詳細信息,然後在後續頁面的操作鏈接中重新使用它們?MVC3推薦的控制器,操作查詢重用

例如from page〜/ Home/BlogsByTag?tag = Cloud%20Services列出了一系列博客,什麼是捕獲控制器的'最佳'方式,動作&查詢,然後這些如何應用到'返回列表'動作鏈接在後續的編輯頁面(〜/ Admin/Edit /?Blog = 1234)?

回答

0

如果我理解你是正確的,你想要從引用頁面生成一個帶有url的ActionLink?

可以讀取請求的引用在一個完整的URL方面:

Request.UrlReferrer 

如果你想訪問的動作,控制器和查詢的部分,你必須通過他們的聯繫,參數。例如:

Html.ActionLink("Linktext", "Edit", "Admin", null, 
           new { 
            Blog = 1234, 
            ReferringController = "Home", 
            ReferringAction = "BlogsByTag", 
            ReferringQueryParams = ... 
           }); 

然後,您可以在編輯操作中讀取該值並將其傳遞給視圖以生成後向鏈接。

但也許使用history.back()是一個更簡單的方法。

+0

我想ActionLink的造成一回〜/主頁/ BlogsByTag用戶會話的休息嗎?標籤=後續頁面中可能沒有此頁面作爲引薦來源的Cloud%20Services。 – user1065447

+0

好的,問題是,你想在哪裏編碼值?我的第二種方法是通過url參數從* refer *頁面發送值,因爲你寫了*在後續頁面的actionlink中重複使用它們* – Jan

+0

從原始頁面(〜/ Home/BlogsByTag?tag = Cloud%20Services)包含博客列表,我想進入選定博客的詳細信息頁面,然後進入更多頁面,例如編輯和/或刪除確認頁面。在這些頁面上,我希望actionlink能夠鏈接回原始頁面。 – user1065447

0

您可以使用:

Url.RouteCollection["controller"] 
Url.RouteCollection["action"] 
... 

您需要的變量。對於查詢字符串,你可以使用:

的Request.QueryString [ 「變量1」]

或者你可以聲明控制器:

public ActionResult MyController(string controller, string action, string variable...) 

和變量將被自動地填寫。

然後你就可以在Session["refurl"]例如存儲該信息(或完整的URL),有效期爲

+0

如果我將值存儲在會話變量中,動作鏈接結構的外觀如何? – user1065447

相關問題