<noscript> 标记中的内联 C#

Inline C# in <noscript> tags

本文关键字:noscript      更新时间:2023-09-26

我需要在 ASP.NET 中使用标签才能从类背后的代码调用 C# 方法,但它似乎在调用它,而不管 JavaScript 是启用还是禁用。标签内的其他文本按预期工作。

下面是我正在使用的代码,我做错了什么吗?

谢谢

<noscript>
  other text here
  <% DisableTextBox("textBoxId"); %>
</noscript>

溶液TextBox 在服务器端被禁用,并使用以下 JavaScript/jQuery 在客户端启用:

$("#txtTotalQuantScore").prop("disabled", false);

ASP.NET 视图引擎对您包含的noscript标签一无所知。

所有服务器端代码将由服务器执行,并将结果写入 HTML 页面。noscript 标记不能用作 C# if 语句。

如果你想在Javascript不可用时禁用某些东西,你可以在客户端这样做。

一种方法是将有问题的元素设置为隐藏在CSS中,然后使用Javascript取消隐藏它。

正如@Jamie Dixon所描述的,你试图做的事情是不可能的。

查看您的方法名称,如果浏览器不支持 javascript,您似乎正在尝试禁用文本框。

因此,我建议始终在服务器端禁用此文本框,并在客户端使用 javascript 启用它。

这样,只有支持 javascript 的浏览器才会启用文本框。

我想补充一点,您可以在服务器端检测浏览器是否支持脚本,但没有简单的方法可以判断用户是否启用了脚本。

您可以采用一种技巧,例如通过脚本在隐藏字段中设置值(例如,0 表示无脚本,1 表示启用),但这并不总是可靠的。