<noscript>标签中的内联C#</noscript>

时间:2013-11-08 13:50:10

标签: c# javascript html asp.net noscript

我需要在ASP.NET中使用标记,以便从类后面的代码中调用C#方法,但无论是启用还是禁用JavaScript,它似乎都在调用它。标签内的其他文本按预期工作。

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

由于

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

解决方案 TextBox在服务器端被禁用,并使用以下JavaScript / jQuery启用了客户端:

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

3 个答案:

答案 0 :(得分:6)

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

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

如果您想在Javascript不可用时禁用某些内容,则可以在客户端执行此操作。

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

答案 1 :(得分:5)

正如@Jamie Dixon所描述的那样,你想做的事情是不可能的。

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

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

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

答案 2 :(得分:1)

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

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