Tri*_*ack 8 asp.net-mvc html5 asp.net-mvc-2
我正在尝试根据HTML5规范创建隐藏表单,其中隐藏属性使用时没有值.现在我不知道如何强制它进入asp.net mvc
<% Html.BeginForm("ChangeContent", "Content", FormMethod.Post, new {hidden}); %>
Run Code Online (Sandbox Code Playgroud)
如上所述的方法无法编译
Compiler Error Message: CS0103: The name 'hidden' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
谁知道出路?
编辑
只是出于好奇使用默认的HTML帮助程序?
HtmlAttribute集合由键值对组成,这hidden是键。您也必须给它一个值。如您现在所写,编译器将其解释为好像引用了hidden尚未定义的变量。
如果要hidden = ""在HTML中使用
<% Html.BeginForm("ChangeContent", "Content", FormMethod.Post, new { hidden = "" }); %>
Run Code Online (Sandbox Code Playgroud)
根据规格:
hidden是一个boolean attribute。布尔属性可以用几种方法表示[ref]:
元素上存在布尔属性表示真实值,而缺少属性则表示假值。
如果存在该属性,则其值必须为空字符串或该属性的规范名称的ASCII大小写不匹配的值,且没有前导或尾随空格。
换句话说,hidden可以用三种方式表示属性
<... hidden ...>
<... hidden="" ...>
<... hidden="hidden" ...>
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,默认BeginForm方法不会做你想要的.您可以创建一个可以根据需要BeginForm输出<form>标记的新方法,也可以<form>手动编写标记HTML并使用路由引擎填充URL:
<form action="<%: Url.Action("ChangeContent", "Content") %>" method="post" hidden>
...
</form>
Run Code Online (Sandbox Code Playgroud)
更新:
要回答您的问题编辑,使用标准帮助程序是不可能的.以下是MSDN上的参考:http://msdn.microsoft.com/en-us/library/dd492714.aspx.根据文档,属性必须是名称/值对.