Html.HiddenFor做什么?
虽然我已经阅读了关于Html.HiddenFor的文档,但我没有理解它用于...
有人可以解释它的用途并举一个简短的例子吗?
这些助手应该在代码中进入哪里?
它会在表单中为您传递的字段(来自您的模型)创建一个隐藏输入。
对于您的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"]);
}
像许多函数一样,这个函数可以用许多不同的方法来解决许多不同的问题,我认为它是我们工具带中的又一个工具。
到目前为止,讨论主要集中在简单地隐藏一个ID,但那只是一个值,为什么不把它用于很多值呢! 这就是我所做的,我一次只用一个视图加载一个类的值,因为html.beginform会创建一个新对象,如果该视图的模型对象已经传递了一些值,那么除非您在beginform中提供对这些值的引用,否则值将丢失。
为了看到html.hiddenfor的一个很好的动机,我建议你在.NET MVC中将视图中的数据传递给控制器 - “@model”不突出显示
链接地址: http://www.djcxy.com/p/60437.html