首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Html.HiddenFor是做什么的?

Html.HiddenFor是做什么的?
EN

Stack Overflow用户
提问于 2010-10-06 02:43:22
回答 4查看 140.6K关注 0票数 108

虽然我已经阅读了Html.HiddenFor上的文档,但我还没有掌握它是用来做什么的。

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

这些帮助器应该在代码中放在哪里?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-06 02:43:59

它在表单上为您传递的字段(来自您的模型)创建一个隐藏输入。

它对于Model/ViewModel中的字段非常有用,因为您需要在页面上持久化这些字段,并在进行另一个调用时传回这些字段,但用户不应该看到这些字段。

考虑以下ViewModel类:

代码语言:javascript
复制
public class ViewModel
{
    public string Value { get; set; }
    public int Id { get; set; }
}

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

代码语言:javascript
复制
<% using(Html.BeginForm() { %>
    <%= Html.HiddenFor(model.Id) %><br />
    <%= Html.TextBoxFor(model.Value) %>
<% } %>

这将产生与以下HTML等效的结果:

代码语言:javascript
复制
<form name="form1">
    <input type="hidden" name="Id">2</input>
    <input type="text" name="Value" value="Some Text" />
</form>
票数 116
EN

Stack Overflow用户

发布于 2011-03-05 03:20:38

并在Edit操作方法中使用隐藏的ID输入:

代码语言:javascript
复制
[HttpPost]
public ActionResult Edit(FormCollection collection)
{
    ViewModel.ID = Convert.ToInt32(collection["ID"]);
}
票数 8
EN

Stack Overflow用户

发布于 2017-06-29 00:07:01

像许多函数一样,这个函数可以用很多不同的方式来解决许多不同的问题,我认为它是我们工具带中的另一个工具。

到目前为止,讨论主要集中在简单地隐藏ID,但这只是一个值,为什么不将它用于很多值!这就是我正在做的事情,我使用它来加载类中的值,一次只有一个视图,因为html.beginform创建了一个新对象,如果该视图的模型对象已经传递了一些值,那么这些值将会丢失,除非您在beginform中提供了对这些值的引用。

要了解html.hiddenfor的强大动力,我建议您访问Passing data from a View to a Controller in .NET MVC - "@model" not highlighting

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3866716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档