asp.net自动生成Javascript吗?

时间:2013-08-07 10:49:23

标签: javascript html asp.net

如果我创建一个新的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','')

enter image description here

作为ASP.NET的新手,这让我感到惊讶,因为我不知道我使用的是javascript所以我希望这不是一个愚蠢的问题......

如果用户在浏览器中禁用javascript(例如,最近Tor建议)是否意味着服务器端事件Scan_Click将无法运行?

如果有,可以在asp.net网站上运行服务器端脚本,并在浏览器中禁用javascript吗?

2 个答案:

答案 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,更不用说仅用于回发。