[英]Does asp.net auto generate Javascript?
如果我創建一個新的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>
當我運行時,當我將鼠標懸停在Scan- Javascript:_doPostBack('ctl02','')
時,瀏覽器中會顯示以下內容
作為ASP.NET的新手,這讓我感到驚訝,因為我不知道自己在使用javascript,所以我希望這不是一個愚蠢的問題……
如果用戶在瀏覽器中禁用了javascript(例如Tor最近建議),這是否意味着服務器端事件Scan_Click將不會運行?
如果是這樣,是否有替代方法可以在asp.net站點上運行服務器端腳本,並在瀏覽器中禁用javascript?
ASP.NET將JavaScript用於回發功能,因此,如果不啟用JavaScript,它將無法運行。
如果要在沒有JavaScript的情況下運行應用程序,則必須移至ASP.NET MVC並使用常規的POST操作。
但是請注意,采用這種其他方法,您將不會擁有所有精美的控件(如日歷,菜單甚至按鈕),所有內容都是純HTML。
如果用戶在瀏覽器中禁用了javascript(例如Tor最近建議),這是否意味着服務器端事件Scan_Click將不會運行?
是的, runat="server"
屬性允許ASP.NET將您的onserverclick
事件轉換為可以通過JS調用的某些客戶端代碼-如果禁用了JS,則無法觸發此代碼。
如果是這樣,是否有替代方法可以在asp.net站點上運行服務器端腳本,並在瀏覽器中禁用javascript?
您可以手動編寫HTML輸出,從而可以控制如何調用回發,從而可以確保您不依賴JS。 但是,您需要權衡沒有啟用JS的情況下網站正常運行的可能性,更不用說回發了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.