首页新闻找找看学习计划

asp.net core mvc中的taghelper如何与服务器端代码@联合使用

0
悬赏园豆:50 [已解决问题] 解决于 2019-09-02 13:58

如题,
<input @ViewData.disabled asp-for="Name" />
@ViewData.disabled的值为"disabled"
上面的razor代码会被rend成
<input disabled asp-for="Name" />
也就是taghelper和@ViewData一起用会识别为html代码
那么,我如何才能把taghelper和@的服务器端变量联合使用呢?
有人建议
1.编写自定义taghelper,但是我觉得这个是比较简单基本的html元素,没必要费力气去写个自定义的taghelper,如何这个,我还不如直接html拼接呢
2.有人建议
@{
if(ViewData.disabled)
{
<input disabled asp-for="Name" />
}
else
{
<input asp-for="Name" />
}
}
我还是觉得这样写代码可读性太差
3.我search了很久想找找个taghelper里面有没有对于可以生产disabled或者readonly这样的html element的写法,但是很遗憾,没找到

不知道大家有没有遇到过这样的问题,请给指条明路!!!

dongb83的主页 dongb83 | 初学一级 | 园豆:146
提问于:2019-08-31 21:47
< >
分享
最佳答案
0

我们对类似的场景就是写自定义 TagHelper 实现的,写起来很简单

收获园豆:50
dudu | 高人七级 |园豆:41322 | 2019-08-31 21:51
dudu | 园豆:41322 (高人七级) | 2019-08-31 22:57
其他回答(2)
0

我就是这么写的if(ViewData.disabled)
{
<input disabled asp-for="Name" />
}
else
{
<input asp-for="Name" />
}
}

Melody.Gkx | 园豆:196 (初学一级) | 2019-09-01 14:40

我的html中有很多input需要做disabled或者readonly的处理,这样写可读性太低了,后来我改成如下了,算是笨方法吧
<input asp-for="Drawing" data-disabled="@disabled" />
<input asp-for="Rindex" data-disabled="@disabled" />
<script>
$(function () {
$("[data-disabled='@disabled']").each(function (i, e) {
var disabled = $('#' + e.id).data('disabled');
if (disabled == 'disabled') {
$('#' + e.id).attr('disabled', 'disabled');
}
});
})
</script>

支持(0) 反对(0) dongb83 | 园豆:146 (初学一级) | 2019-09-02 13:52
0

我的html中有很多input需要做disabled或者readonly的处理,这样写可读性太低了,后来我改成如下了,算是笨方法吧
<input asp-for="Drawing" data-disabled="@disabled" />
<input asp-for="Rindex" data-disabled="@disabled" />
<script>
$(function () {
$("[data-disabled='@disabled']").each(function (i, e) {
var disabled = $('#' + e.id).data('disabled');
if (disabled == 'disabled') {
$('#' + e.id).attr('disabled', 'disabled');
}
});
})
</script>

dongb83 | 园豆:146 (初学一级) | 2019-09-02 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册