1
19
请不要写意粉代码。HTML帮助程序用于此目的:
然后:
或者你可以想出更好的办法(如果模型包含选项的话):
您还将获得更多单元可测试代码的奖励。 |
2
26
不需要添加助手方法,只需使用
如果你要移除
此解决方案甚至允许您使用多个HTML属性,其中一个是可选的,另一个不是,即
|
3
9
一个选项是创建一个自定义的html.dropdownlist版本,该版本使用一个额外的参数并执行您想要的操作…但是,您必须为每种类型的助手创建一个新的助手-textbox for、textbarefor、checkboxfor等…你还得想办法让它发挥作用。 我选择创建一个HTML助手来替换普通的匿名htmlattributes对象,因为这样它就可以与所有使用htmlattributes的助手兼容,而不需要任何特殊的工作。此解决方案还允许您传递其他属性,如类、名称或任何您想要的属性。它不会把你锁定为只有残疾人。 我创建了以下助手-它使用一个布尔值和一个匿名对象。如果disabled为true,则将disabled属性添加到值为“disabled”的匿名对象(实际上是字典),否则根本不添加该属性。
对我来说,这种方法的一个巨大优势是,它几乎可以与所有的MVC HTMLHelper一起工作,因为它们都具有接受RouteValueDictionary而不是匿名对象的重载。
告诫
:
我不太喜欢它的名字,但我想不出更好的名字。重命名很容易。
我也不喜欢使用语法-但我还是想不出更好的方法。这不应该很难改变。上的扩展方法
|
4
2
|
5
0
强类型版本:
|
6
0
为了完整起见,这里有一个保存所有参数的函数,它会将选择值发布到服务器:
使用示例,禁用下拉列表如果列表中只有一个项目,则该值仍将以正确的客户端ID发布到服务器:
|
7
-2
我不知道ASP.NET是否提供了更简洁的特殊情况方法,但可以这样做:
|