2015-05-20 57 views
1

我在這一個小時搜索了幾個小時,但沒有找到有效的單個答案。基本上我試圖做的是以下幾點:將URL存儲到響應標題中,以便我可以隨時隨地訪問它

我訪問我的索引頁,有一組參數,如:

http://localhost:51684/Orders/Index?startDate=20%2F05%2F2015&endDate=26%2F05%2F2015 

然後我點擊的順序去編輯視圖上:

http://localhost:51684/Orders/Edit/1400069 

我編輯的一些價值觀和我郵編:保存後,我回到這個編輯的看法,但我Request.UrlReferrer是:http://localhost:51684/Orders/Edit/1400069而不是

一位同事建議嘗試羅指數歐凱成頭

於是,我試着做以下幾點:在開始添加自定義的響應頭,因此它可以在任何時候訪問看起來是這樣的: 守則Global.asax的

protected void Application_PreSendRequestHeaders(object sender, EventArgs e) 
{ 
    HttpContext.Current.Response.Headers.Add("SavedFilters", "/Orders/Index"); //Standard Value 
    Response.Headers.Remove("Server"); 
    Response.Headers.Remove("X-AspNet-Version"); 
    Response.Headers.Remove("X-AspNetMvc-Version"); 
} 

當我在指數頁面應用過濾器我這樣做:

System.Web.HttpContext.Current.Response.Headers.Set("SavedFilters", Request.RawUrl); 

再發生這種情況時,我看提琴手應用:

SavedFilters: /?startDate=20%2F05%2F2015&endDate=26%2F05%2F2015 
SavedFilters: /Orders/Index 

我得到2頭具有完全相同的名稱...

我在做什麼/旁邊試試這樣..任何幫助將是非常讚賞

+1

這或者通過'TempData' –

+0

通過URL這行不通,我們希望它的方式:如果我去了編輯視圖:SavedFilters:/?startDate = 20%2F05%2F2015&endDate = 26%2F05%2F2015已不存在了/訂單/索引有.. 和我已建議不要使用tempdata –

+2

使用您自己的kludge 'TempData'幾乎不會比使用'TempData'更好嗎? –

回答

0

所以有點無能如果您沒有在個別網絡呼叫響應的實際響應中專門設置一個值,您是否希望爲「SavedFilters」發送默認標頭值?

簡單,Global.asax的改變你的代碼:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e) 
{ 
    if (!HttpContext.Current.Response.Headers.AllKeys.Contains("SavedFilters")) 
     HttpContext.Current.Response.Headers.Add("SavedFilters", "/Orders/Index"); //Standard Value 
    Response.Headers.Remove("Server"); 
    Response.Headers.Remove("X-AspNet-Version"); 
    Response.Headers.Remove("X-AspNetMvc-Version"); 
} 
相關問題