我的表单必须将布尔值设置为true,但用户将无法与控件交互以更改此值.
我认为最好的方法是使用HiddenFor因为各种原因在Controller中设置它是不可取的,但是我不能将布尔设置为true ...
我的代码
@using (Html.BeginForm())
{
@Html.LabelFor(mod => mod.EmailAddress)<br />
@Html.TextBoxFor(mod => mod.EmailAddress)
@Html.HiddenFor(mod => mod.IsSubsribed, new { value = true })
}
Run Code Online (Sandbox Code Playgroud)
我试过了
@Html.HiddenFor(mod => mod.IsSubsribed, new { value = true })
@Html.HiddenFor(mod => mod.IsSubsribed, new { value = "true" })
@Html.HiddenFor(mod => mod.IsSubsribed, new { value = "checked" })
Run Code Online (Sandbox Code Playgroud)
我需要做什么
辅助方法最终将呈现输入元素.那么为什么不写一个隐藏的输入元素标签呢?
<input type="hidden" name="IsSubsribed" value="true" />
Run Code Online (Sandbox Code Playgroud)
或者如果你想使用helper方法,你可以覆盖explcititly值(通常helper方法使用表达式的值(你的属性))
@Html.HiddenFor(d=>d.IsSubsribed,new { Value="true"})
Run Code Online (Sandbox Code Playgroud)
V in Value 应该是这个工作的上限
但请记住,用户仍然可以更新此值并发送它.所以不要依赖来自客户的价值观.如果您知道这应该始终为true,请使用true您的http post action方法(服务器代码),而不是依赖来自客户端浏览器的此值
简而言之,不要盲目信任来自客户端浏览器的数据.它很容易改变
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |