Fen*_*ton 3 asp.net-mvc binding
ASP.NET MVC 2点替换为元素名称中的下划线(即使ASP.NET MVC默认情况下会在名称属性中放入点!)
当您在ASP.NET MVC中的表单上粘贴元素时,它通常执行以下操作:
<%= Html.TextBoxFor(model => model.Contact.FirstName)%>
Run Code Online (Sandbox Code Playgroud)
变
<input type="text" name="Contact.FirstName" id="Contact_FirstName" ...
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是,如果您想要这样做:
<%= Html.DropDownList(
"Contact_Title",
new SelectList(Model.Titles, "Key", "Value"))%>
Run Code Online (Sandbox Code Playgroud)
你实际上最终得到了
<select id="Contact_Title" name="Contact_Title">...
Run Code Online (Sandbox Code Playgroud)
请注意,您现在在name属性中有一个下划线而不是一个点.
所以我以为我会传递这个名字,包括一个点,就像这样:
<%= Html.DropDownList(
"Contact_Title",
new SelectList(Model.Titles, "Key", "Value"),
new { name = "Contact\\.Title" })%>
Run Code Online (Sandbox Code Playgroud)
但它仍然呈现为:
<select id="Contact_Title" name="Contact_Title">...
Run Code Online (Sandbox Code Playgroud)
我真的(真的)希望这个呈现为:
<select id="Contact_Title" name="Contact.Title">...
Run Code Online (Sandbox Code Playgroud)
为了让它自动绑定回Model.Contact.Title - 任何想法?
重要更新
这与我最初的想法略有不同......它实际上看起来像我传递的任何东西,因为名字属性被简单地忽略了......
new { name = "MYNAME" }
Run Code Online (Sandbox Code Playgroud)
仍然是Contact_Title的结果!
任何帮助赞赏!
<%= Html.DropDownList(
"Contact.Title",
new SelectList(Model.Titles, "Key", "Value"))%>
Run Code Online (Sandbox Code Playgroud)
这将呈现:
<select id="Contact_Title" name="Contact.Title">...
Run Code Online (Sandbox Code Playgroud)
它只替换id中的点,因为它在xhtml中无效.
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |