2012-07-24 62 views
0

我使用MVC C# 說我有以下的ActionResult:的ActionResult HttpPost需要訪問值

public ActionResult Create(string location) 
    { 
     ... 
     View() 
    } 

我需要使用的位置主要在[httppost]

[HttpPost] 
    public ActionResult Create(Employee employee) 
    { 
     ... 
    // I need to access the value of location here but I dont' have access to the View 
    } 

什麼獲取位置價值的最佳方式。我可以創建一個視圖模型並將該值傳遞給視圖,然後在[HttpPost]中進行檢索,但由於視圖受限制,因此無法訪問該視圖。

+0

定義受限? – 2012-07-24 22:10:11

+0

我無法修改視圖內的任何內容。該視圖已創建。我們被告知不要以任何形式修改 – 2012-07-24 22:15:39

+0

@NatePet - 這是功課嗎?聽起來就像作業通常需要的那種任意限制。 – 2012-07-24 22:21:28

回答

1

有許多方法可以在mvc中的控制器方法之間傳遞數據。其中之一是通過使用TempData。 您可以在GET-方法

public ActionResult Create(string location) 
{ 
    TempData["location"] = location; 
    ... 
    View() 
} 

保存location,然後檢索它在你的POST方法

[HttpPost] 
public ActionResult Create(Employee employee) 
{ 
    var location = TempData["location"]; 
    ... 
} 

雖然,使用視圖模型會更preferrable。

+0

爲什麼不使用會話變量 – 2012-07-24 22:12:44

+0

您可以使用會話變量,但是'TempData'僅用於重定向。 TempData也是一種更安全的傳遞數據的方式,因爲會話可能會被用戶「偷走」。 – 2012-07-24 22:15:22