首页 新闻 搜索 专区 学院

mvc view中动态控制 元素的 disabled

0
悬赏园豆:30 [已关闭问题] 关闭于 2014-10-26 23:57

在view中 使用辅助器方法来创建表单元素,并通过controller中的传值动态控制元素的活性与非活性

 

例子:

  @Html.TextBoxFor(x=>x.Name)

  那么可以通过下面这种方式来使得生成的元素 非活性

  @Html.TextBoxFor(x=>x.Name , new{disabled="disabled"})

但是我想动态的控制元素的活性与非活性(不通过JS在客户端实现)

然后我猜测的实验了下

@Html.TextBoxFor(x=>x.Name , new{disabled=""})

@Html.TextBoxFor(x=>x.Name , new{disabled="false"})

这两种生成的表单元素都是非活性的

貌似只要为元素添加 disabled特性(attribute)不管其有没有值都是非活性的

 

那么怎么通过辅助器方法,来控制生成元素的活性与非活性呢?

重申一下(不用JS)

 

 

PS:

<input

  type="text"

  value="@Model.Name"

  @Html.Raw(Model.IsActive?"":"disabled='disabled'") />

这种方式可以达到我想要的目的

但是。。。。。我就想知道 通过辅助器方法 例如 @HTML.TextBoxFor()

怎么实现。。。。。

(毕竟,上面这种方式能实现,但是太麻烦了,还要为元素指定ID,Name 属性什么的,而辅助器的话,就不需要指定这些值,所以想弄个究竟。

且,如果是下拉菜单的话,如果使用HTML中的<select>元素更加麻烦,所以,,能还是不能,怎么弄??????跪谢

算了的主页 算了 | 初学一级 | 园豆:3
提问于:2014-10-26 23:51
< >
分享
所有回答(2)
0

哎,,真是的

我自己找到了解决办法了。。

哈哈

之前一直没有想到,就在提问之后,却突然灵光一闪

@Html.TextBoxFor(x => x.Order.orders_type, PageState ? new{disabled="disabled"} : null)

这样就想了,,晕了

 

就算给有需要的人分享下吧 

哈哈

算了 | 园豆:3 (初学一级) | 2014-10-26 23:57

晕了,这方法也不好

。。。

是这样的,

假如有的元素需要 添加其他HTML特性,而有些元素不需要。

那么。

╮(╯▽╰)╭ 算了,反正也是每个元素都写一遍。。。。。。。。。。。

 

都写一般 。。。。 好麻烦啊。。。。。。。。。。。。。。。。。。。。

 

支持(0) 反对(0) 算了 | 园豆:3 (初学一级) | 2014-10-26 23:59
0

自己扩展 HtmlHelper 方法就可以了

Hopenet086 | 园豆:202 (菜鸟二级) | 2016-03-04 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册