2012-07-24 73 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