我收到此错误消息:
Cannot create an object of type 'System.Boolean' from its string representation <%: false %> for the 'Visible' property.
当我尝试在 ASP.net 网站中运行此代码时:
<a runat="server" visible='<%: false %>' href="~/" >Home</a>
有语法错误吗? false
应该可以用任何与以下结果相同的方法替换:
<asp:Panel runat="server" Visible='<%: GetTrueOrFalse() %>'>Home</a>
最佳答案
假设您有一个返回 bool
值的方法,如下所示:
public bool IsVisible()
{
if (some_condition) // example condition test
{
return true;
}
else
{
return false;
}
}
您需要像这样使用绑定(bind):
ASPX
<a runat="server" visible='<%# IsVisible() %>' href="~/" >Home</a>
ASPX.CS(代码隐藏)
protected void Page_Load(object sender, EventArgs e)
{
// do something
Page.DataBind();
}
注意:此技巧适用于返回 bool
的方法或属性。
更新1:
由于 a
标签未设置任何 id
属性,因此您可以删除 runat="server"
:
<a visible='<%# IsVisible() %>' href="~/" >Home</a>
或者使用带有 display: none
或 visibility: hide
的 CSS:
<a visible='<%# IsVisible() %>' href="~/" style="visibility:hidden; display:none;">Home</a>
引用:
关于asp.net - 在非 ASP 元素中使用代码服务器端脚本分隔符/ASP.NET 内联表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46113412/