1

我有一个模型类人

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

现在,在我的索引视图中,我想通过从用户和区域 =“foo”获取值名称属性来将值从视图传递到控制器。我知道如何通过如下方式从用户获取值

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

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

现在,我想要视图中的 area ="foo"。我试图用谷歌搜索这个问题,但没有找到解决方案。这是一般问题。不要像在控制器中设置值 area="foo" 这样回答。请帮助我,不要在没有评论的情况下投反对票,以便我将来改进我的问题。谢谢

4

1 回答 1

1

在表单中添加一个名为“ area ”的隐藏字段,并将值设置为您想要的任何值。当您的表单发布时,隐藏字段值也将发布到您的操作方法。

@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 之类的工具来更新浏览器中的隐藏字段值。如果它是敏感信息(购物门户中商品的价格),请不要从客户那里读到这样的信息。从服务器读取它。

于 2013-04-13T14:38:57.030 回答