0

如果我创建一个新的 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 不会运行?

如果是这样,是否可以在浏览器中禁用 javascript 的 asp.net 站点上运行服务器端脚本?

4

2 回答 2

2

ASP.NET 将 JavaScript 用于 Postback 功能,因此它不会在没有启用 JavaScript 的情况下运行。

如果您想在没有 JavaScript 的情况下运行应用程序,则必须迁移到 ASP.NET MVC 并使用常规 POST 操作。

但请注意,在这种其他方法中,您不会拥有所有那些花哨的控件,如日历、菜单甚至按钮,一切都是纯 HTML。

于 2013-08-07T10:52:01.427 回答
1

如果用户在他们的浏览器中禁用了 javascript(例如 Tor 最近建议的)这是否意味着服务器端事件 Scan_Click 不会运行?

是的,该runat="server"属性允许 ASP.NET 将您的onserverclick事件转换为可以通过 JS 调用的一些客户端代码 - 如果禁用 JS,则无法触发此代码。

如果是这样,是否可以在浏览器中禁用 javascript 的 asp.net 站点上运行服务器端脚本?

您可以手动编写 HTML 输出,让您控制调用回发的方式,这样您就可以确保不依赖 JS。但是,您需要权衡您的网站在没有启用 JS 的情况下正常运行的可能性,更不用说仅用于回发了。

于 2013-08-07T10:53:02.430 回答