使用TextBoxFor时是否可以控制文本boxt的name属性?
视图中的此代码
@Html.TextBoxFor(m => m.SearchParams.someParam)
Run Code Online (Sandbox Code Playgroud)
产生这个
<input id="SearchParams_someParam" name="SearchParams.someParam" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
但我不希望我的输入名称是"SearchParams.someParam",我希望它是类似的
<input id="SearchParams_someParam" name="MyPreferedName" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
其中MyPreferedName来自相应模型中的.SearchParams.someParam的某些属性.
这可能吗?我知道@ Html.TextBox可以做到,但我不想在视图中对该名称进行硬编码.
u_1*_*148 21
@Html.TextBoxFor(model => model.attr, new { Name = "txt1" })
Run Code Online (Sandbox Code Playgroud)
只需使用"名称"而不是"名称"
它好像该TextBoxFor方法将不会允许您使用的@name密钥作为htmlAttribute。这有点道理,因为如果它确实允许您覆盖 HTML 名称属性,则该值将不会在表单 POST 中正确绑定到您的模型。
而不是使用...
@Html.TextBoxFor(x => Model.MyProperty, new { @name = "desired_name" }); // does not work
Run Code Online (Sandbox Code Playgroud)
我最终不得不使用...
@Html.TextBox("desired_name", Model.MyProperty); // works
Run Code Online (Sandbox Code Playgroud)
我不确定为什么第一个选项不起作用,但希望这有助于解决它。
Ped*_*C88 -1
这行不通吗?
@Html.TextBoxFor(m => m.SearchParams.someParam, new { id="my_id" })尽管对于您的具体情况,它更像是:
@Html.TextBoxFor(m => m.SearchParams.someParam, new { name = "MyPreferedName" })
在这里,您会发现InputExtensions.TextBoxFor的构造函数的不同重载MVC3
| 归档时间: |
|
| 查看次数: |
11021 次 |
| 最近记录: |