【问题标题】:Passing data from View to Controller in ASP.NET MVC在 ASP.NET MVC 中将数据从视图传递到控制器
【发布时间】:2013-04-13 14:35:35
【问题描述】:

我有一个模型类 Person

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" 这样回答。 请帮助我,不要在没有评论的情况下投反对票,以便我将来改进我的问题。 谢谢

【问题讨论】:

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


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

    【讨论】:

    • 实际上,我必须将 url 内容从视图传递到控制器.. 你能指导我如何做到这一点
    • 你的意思是查询字符串值?
    • 第 1 步:控制器操作重置密码。这会发送一封确认电子邮件。第 2 步:控制器操作接收用户 ID 和密码重置密码,在控制器内部检查两者是否有效,然后继续登录用户并重定向到 ChangePasswordAction,这会呈现一个包含新密码字段的视图和确认。第三步:提交新密码给控制器进行更新。
    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多