如题,
<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的写法,但是很遗憾,没找到
不知道大家有没有遇到过这样的问题,请给指条明路!!!
我就是这么写的if(ViewData.disabled)
{
<input disabled asp-for="Name" />
}
else
{
<input asp-for="Name" />
}
}
我的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>
我的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>