在ASP.NET MVC中将数据从View传递到Controller

时间:2013-04-13 14:35:36

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我有一个模型类Person

public class Person
{
    public string name { get; set; }
    public string area { get; set; }
}

现在,在我的索引视图中,我想通过从user和area =“foo”获取值name属性将值从视图传递到控制器。我知道如何从用户获取值,如下所示

@using (Html.BeginForm())
{
  @Html.Label("Name")
  @Html.TextBoxFor(m=>m.name)

  <input type="submit" value="Name" /> 
}

现在,我想在views中找到area =“foo”。我试图谷歌问题,我没有找到解决方案。 这是一般性的问题。不要回答,在控制器中设置值area =“foo”。 请帮助我,不要在没有评论的情况下进行投票,这样我将来可以改进我的问题。 谢谢

1 个答案:

答案 0 :(得分:1)

在表单中添加名为“区域”的隐藏字段,并将值设置为您想要的任意值。发布表单后,隐藏字段值也会发布到您的操作方法中。

@using (Html.BeginForm())
{
  @Html.Label("Name")
  @Html.TextBoxFor(m=>m.name)
  <input type="hidden" name="area" value="foo" />
  <input type="submit" value="Name" /> 
}

现在,您可以在 HttpPost 操作方法

中获取此功能
[HttpPost]
public ActionResult Create(Person model)
{
  // check for model.name and model.area.
  // TO DO : Save and redirect
}

你应该记住,人们总是可以使用像firebug这样的工具来更新浏览器中的隐藏字段值。如果它是敏感信息( 购物门户中商品的价格 ),请不要从客户端读取此类信息。从服务器读取它。