带有 html 助手 Hidden 和 HiddenFor 的布尔值
这是怎么回事? viewmodel 变量是一个值为 true 的 bool。
<%= Html.HiddenFor(m => m.TheBool) %>
<%= Html.Hidden("IsTimeExpanded",Model.TheBool) %>
<input type="hidden" value="<%=Model.TheBool%>" name="TheBool" id="TheBool">
结果是:
<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">
我做错了什么?为什么助手没有按预期工作?
What's up with this? The viewmodel variable is a bool with value true.
<%= Html.HiddenFor(m => m.TheBool) %>
<%= Html.Hidden("IsTimeExpanded",Model.TheBool) %>
<input type="hidden" value="<%=Model.TheBool%>" name="TheBool" id="TheBool">
Results in:
<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">
What am I doing wrong? Why don't the helpers work as intended?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
1) 使用不同的(唯一的)id
2) 不要使用这个助手,使用
1) use different (unique) ids
2) don't use this helper, use
正如此处所回答的,问题是 HTML 帮助程序默认使用发布的值(如果有)然后参考模型。就我个人而言,我认为这没有多大意义,现在想知道我们的平台上还有多少其他错误等待着。
无论如何,上述答案中发布的解决方案将解决问题,只需在从控制器返回之前添加此行:
是的,这有点垃圾,因为您只能使用字符串引用......但它确实有效。
As answered here the problem is that HTML helpers by default use the posted values (if available) then refer to the model. Personally I don't think this makes a whole bunch of sense and now wonder how many other bugs lie in wait throughout our platform.
Anyway, the solution posted in the aforementioned answer will solve the problem, just add this line before you return from the controller:
And yes, it's a bit rubbish because you can only use a string reference... but it does work.
我也有类似的情况,最后就这样解决了。
情况是用户想要保存然后确认保存场景......
我选择使用下面的解决方案而不是
(它确实有效),因为我觉得它更直观......
I had similar and ended up getting round it like this.
The situation is the user wants a Save and then confirm save scenario....
I chose to use the solution below rather than
(which does work) as I feel it is more intuative....
这是剃刀中的示例:
Here's an example in razor: