这工作正-6ren">
gpt4 book ai didi

与 C# 表达式一起使用时,ASP.NET 表达式 <%= ...%> 给出错误 CS 1518

转载 作者:行者123 更新时间:2023-12-02 11:05:55 27 4
gpt4 key购买 nike

我整个早上都在戳这个,我似乎找不到这样做的方法。

我有一个 Web 应用程序,它必须在它的一个 div-s 上显示一个工具提示。工具提示的内容来自一些数据库查询

< div style="height: 10px; clear: both;"title="<%=dbCount %> 本组中版本为 <%=devVersion %> 的设备">

这工作正常。

如果我尝试更换 <%=dbCount %>用一个表达式:

< div style="height: 10px; clear: both;" title="<%=dbCount > 0 ? ""+dbCount : "No " %>  device(s) with version <%=devVersion %> in this group">

然后在 PageLoad 我得到一个异常 CS1518: Expected class, delegate, enum。

无论我如何构造表达式,是否放置括号,是否使用 String.Format 或三元表达式 - 除了仅使用变量名之外,任何类型的表达式都会导致错误。

我尝试用 <%# 替换 <%= 并尝试 <% Response.Write(dbCount>0 ? "some": "none") %> 并得到相同的错误。这是我正在编辑的 aspx 中唯一的一行,因此错误是由它引起的,而不是页面上的其他地方。

我可以使用 <% if(...){ 构造,但是设计师在找到关闭的 div 时遇到了麻烦,我不想用太多垃圾污染源,我宁愿保留原始版本。

您知道为什么会出现编译器错误吗?如何防止它并使用输出表达式 <%= devCount>0?"some":"none"%>?

最佳答案

不要写这样的代码。
Aspx 文件仅支持向后兼容。

如果你真的必须这样做,那么只写公共(public)属性。

引用:Embeded code blocks

Embedded code blocks are supported in ASP.NET Web pages primarily to preserve backward compatibility with older ASP technology. In general, using embedded code blocks for complex programming logic is not a best practice, because when the code is mixed on the page with markup, it can be difficult to debug and maintain. In addition, because the code is executed only during the page's render phase, you have substantially less flexibility than with code-behind or script-block code in scoping your code to the appropriate stage of page processing.



也就是说,该链接确实向您展示了如何正确使用嵌入代码。

如果您真的必须这样做,请使用 Response.Write。
< div style="height: 10px; clear: both;" title="<% 
{
string countMessage = dbCount > 0 ? ""+dbCount : "No ";
Response.Write(countMessage );
}
%> device(s) with version <%=devVersion %> in this group">

关于与 C# 表达式一起使用时,ASP.NET 表达式 <%= ...%> 给出错误 CS 1518,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11763654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com