我在我的项目中使用MVC 3,我看到一种非常奇怪的行为.
我正在尝试为我的模型上的特定值创建一个隐藏字段,问题是由于某种原因,字段上设置的值与模型中的值不对应.
例如
我有这个代码,就像测试一样:
<%:Html.Hidden("Step2", Model.Step) %>
<%:Html.HiddenFor(m => m.Step) %>
Run Code Online (Sandbox Code Playgroud)
我认为两个隐藏的字段都具有相同的值.我所做的是,第一次显示View时将值设置为1,然后在提交后我将Model字段的值增加1.
因此,第一次渲染页面时,两个控件的值都是1,但第二次渲染的值是:
<input id="Step2" name="Step2" type="hidden" value="2" />
<input id="Step" name="Step" type="hidden" value="1" />
Run Code Online (Sandbox Code Playgroud)
如您所见,第一个值是正确的,但第二个值似乎与我第一次显示View时相同.
我错过了什么?*For Html助手是否以某种方式缓存值?如果是这样,我该如何禁用此缓存?
谢谢你的帮助.
虽然我已经阅读了关于Html.HiddenFor的文档,但我还没有理解它用于...
有人可以解释它的用途并举一个简短的例子吗?
这些助手应该在哪里进入代码?
我可以在MSDN上找到Html.HiddenFor的一个很好的定义,但我在Html.Hidden上找到的唯一的东西与它有的问题有关.
有人可以给我一个很好的定义和一个例子.
@Html.HiddenFor(model => model.title, new { id= "natureOfVisitField", @value = '@Model.title'})
Run Code Online (Sandbox Code Playgroud)
它不起作用!如何设定价值?
我本来可以用的
@Html.HiddenFor(x=> ViewData["crn"])
Run Code Online (Sandbox Code Playgroud)
但是,我明白了,
<input id="ViewData_crn_" name="ViewData[crn]" type="hidden" value="500" />
以某种方式绕过那个问题(id=ViewData_crn_ and name=ViewData[crn]),我尝试了以下操作,但是"value"属性没有设置.
@Html.HiddenFor(x => x.CRN, new { @value="1"})
@Html.HiddenFor(x => x.CRN, new { @Value="1"})
Run Code Online (Sandbox Code Playgroud)
生成
<input id="CRN" name="CRN" type="hidden" value="" />
<input Value="500" id="CRN" name="CRN" type="hidden" value="" />
Run Code Online (Sandbox Code Playgroud)
我做错了什么?谢谢
我知道我可以使用@Html.HiddenFor(m => m.parameter),当提交表单时,该参数将传递给控制器.我的模型有很多属性.
有没有一种将整个模型一次性传递给控制器的更短方法,还是每次都必须逐一进行?
怎么了?viewmodel变量是一个值为true的bool.
<%= Html.HiddenFor(m => m.TheBool) %>
<%= Html.Hidden("IsTimeExpanded",Model.TheBool) %>
<input type="hidden" value="<%=Model.TheBool%>" name="TheBool" id="TheBool">
Run Code Online (Sandbox Code Playgroud)
结果是:
<input id="TheBool" name="TheBool" value="False" type="hidden">
<input id="TheBool" name="TheBool" value="False" type="hidden">
<input value="True" name="TheBool" id="TheBool" type="hidden">
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?为什么助手不按预期工作?
标准输出@Html.HiddenFor(model => model.Id)是
<input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" type="hidden" value="0" />
Run Code Online (Sandbox Code Playgroud)
是否需要生成data-val-*属性?它们看起来相当冗长,并且不需要能够存储和返回下一个POST的数据.
禁用这些属性是个好主意吗?它们对某些场景有用吗?
ps:目前我有办法通过临时设置禁用它们 ViewContext.UnobtrusiveJavaScriptEnabled = false
使用这两个类:
public static class Extensions
{
public static NoUnobtrusiveJavaScript NoUnobtrusiveJavaScript(this HtmlHelper htmlHelper)
{
return new NoUnobtrusiveJavaScript(htmlHelper.ViewContext);
}
}
public class NoUnobtrusiveJavaScript: IDisposable
{
private bool _disposed;
private readonly bool _unobtrusiveJavaScript;
private readonly ViewContext _viewContext;
public NoUnobtrusiveJavaScript(ViewContext viewContext)
{
if (viewContext == null) {
throw new ArgumentNullException("viewContext");
}
_viewContext …Run Code Online (Sandbox Code Playgroud) HiddenFor description is:返回由指定表达式表示的对象中每个属性的HTML隐藏输入元素.
我读到,对于模型/ ViewModel中的字段,您需要在页面上保留并在进行另一次调用时传回,但用户不应该看到它.
HiddenInput描述是:表示用于指示属性或字段值是否应呈现为隐藏输入元素的属性.
你能告诉我什么时候HiddenInput有用吗?何时使用它而不是Html.HiddenFor?
谢谢!
我有一张表格,要提交出价.
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "Login" }))
{
@Html.ValidationSummary(true, "Gelieve alle velden in te vullen.")
@Html.LabelFor(m => m.Bid)<br />
@Html.TextBoxFor(m => m.Bid)<br />
@Html.LabelFor(m => m.Name)<br />
@Html.TextBoxFor(m => m.Name)<br />
@Html.LabelFor(m => m.Email)<br />
@Html.TextBoxFor(m => m.Email)<br />
@Html.HiddenFor(model => model.Car_id, new { value = ViewBag.car.id })
<input type="submit" value="Bied" class="button" />
}
Run Code Online (Sandbox Code Playgroud)
我想将hiddenfor的值设置为汽车的id(我使用viewbag获取它),但它不能像在这里看到的那样工作:
<input data-val="true" data-val-number="The field Car_id must be a number." data-val-required="Het veld Car_id is vereist." id="Car_id" name="Car_id" type="hidden" value="" /> <input type="submit" …Run Code Online (Sandbox Code Playgroud) html.hiddenfor ×10
asp.net-mvc ×8
html-helper ×4
.net ×1
asp.net ×1
c# ×1
form-submit ×1
model ×1
razor ×1
validation ×1
viewdata ×1