Html.HiddenFor是做什么的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

虽然我读过关于Html的文档,但我还没有弄清楚它是用来做什么的。

有人能解释一下它的用途并举一个简短的例子吗?

提问于
用户回答回答于

它在表单上创建一个隐藏的输入(来自你的模型),以传递它。

对于你的Model/ViewModel中的字段来说,您需要在页面上持久化并在进行另一个调用时返回,但用户不应该看到它。

考虑以下ViewModel类:

public class ViewModel
{
    public string Value { get; set; }
    public int Id { get; set; }
}

现在,希望编辑页面存储ID,但不要看到它:

<% using(Html.BeginForm() { %>
    <%= Html.HiddenFor(model.Id) %><br />
    <%= Html.TextBoxFor(model.Value) %>
<% } %>

这将产生相当于以下HTML的结果:

<form name="form1">
    <input type="hidden" name="Id">2</input>
    <input type="text" name="Value" value="Some Text" />
</form>
用户回答回答于

并在编辑操作方法上使用隐藏的ID输入:

[HttpPost]
public ActionResult Edit(FormCollection collection)
{
    ViewModel.ID = Convert.ToInt32(collection["ID"]);
}

扫码关注云+社区