【问题标题】:ActionResult HttpPost need to access valueActionResult HttpPost 需要访问值
【发布时间】:2012-07-24 21:54:50
【问题描述】:

我正在使用 MVC C# 假设我有以下 ActionResult:

    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] 中检索它,但我无法访问视图,因为它受到限制。

【问题讨论】:

  • 我无法修改视图中的任何内容。视图已创建。我们被告知不要以任何形式修改它
  • @NatePet - 这是作业吗?听起来像是家庭作业通常需要的那种任意限制。

标签: asp.net-mvc-3


【解决方案1】:

mvc 中有很多方法可以在控制器方法之间传递数据。其中之一是使用TempData。 您可以在 GET 方法中保存 location

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

然后在您的 POST 方法中检索它

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

虽然,使用视图模型会更可取。

【讨论】:

  • 为什么不直接使用会话变量
  • 您可以使用会话变量,但TempData 仅用于重定向。 TempData 也是一种更安全的数据传递方式,因为会话可能会被用户“窃取”。
猜你喜欢
  • 2016-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
相关资源
最近更新 更多