如果我创建一个新的VS项目并将以下示例代码复制到新页面default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="WebApplication1._default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="top-menu" class="float-right">
<ul class="main">
<li><a id="A1" href="#" runat="server" class="current"><span>Home</span></a> </li>
<li><a href="#"><span>Members</span></a>
<ul class="sub curved">
<li><a href="#">MemberPage1</a></li>
<li><a href="#">MemberPage2</a></li>
<li><a href="#">MemberPage3</a></li>
</ul>
</li>
<li><a href="#"><span>Blog</span></a> </li>
<li><a href="#"><span>Contact</span></a> </li>
<li><a href="#"><span>Admin</span></a> </li>
<li><a href="#" runat="server" onserverclick ="Scan_Click"><span>Scan</span></a></li>
</ul>
</div>
</div>
</form>
</body>
</html>
当我运行时,当我将鼠标悬停在扫描上时,我会在浏览器中显示以下内容 - Javascript:_doPostBack('ctl02','')
作为ASP.NET的新手,这让我感到惊讶,因为我不知道我使用的是javascript所以我希望这不是一个愚蠢的问题......
如果用户在浏览器中禁用javascript(例如,最近Tor建议)是否意味着服务器端事件Scan_Click将无法运行?
如果有,可以在asp.net网站上运行服务器端脚本,并在浏览器中禁用javascript吗?
答案 0 :(得分:2)
ASP.NET使用JavaScript作为回发功能,因此如果没有启用JavaScript,它将无法运行。
如果要在没有JavaScript的情况下运行应用程序,则必须转到ASP.NET MVC并使用常规POST操作。
但请注意,在其他方法中,你不会拥有所有那些花哨的控件,如Calendar,Menu甚至Button,一切都是纯HTML。
答案 1 :(得分:1)
如果用户在浏览器中禁用javascript(例如,最近Tor建议)是否意味着服务器端事件Scan_Click将无法运行?
是的,runat="server"
属性允许ASP.NET将您的onserverclick
事件转换为可以通过JS调用的某些客户端代码 - 如果禁用JS,则无法触发此代码。 / p>
如果有,可以在asp.net网站上运行服务器端脚本,并在浏览器中禁用javascript吗?
您可以手动编写HTML输出,让您可以控制如何调用回发,这样您就可以确保不依赖JS。但是,您需要权衡一般情况下您的站点运行的可能性,而不启用JS,更不用说仅用于回发。