2013-08-07 81 views
0

如果我創建一個新的VS項目和下面的示例代碼複製到一個新的頁面default.aspxasp.net是否會自動生成Javascript?

<%@ 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

ASP.NET使用JavaScript作爲回發功能,所以它不會在沒有啓用JavaScript的情況下運行。

如果您想在沒有JavaScript的情況下運行您的應用程序,您必須移至ASP.NET MVC並使用常規POST操作。

但要注意,在這種其他方法中,你不會擁有所有那些奇怪的控件,如日曆,菜單,甚至按鈕,一切都是純HTML。

+0

這並非完全正確。您可以使用經典表單帖子將數據發佈到頁面而不使用JavaScript。 –

+0

是的,你是對的,但在問題的示例中@ooo使用Menu控件,如果沒有啓用js,它將不會運行;-) – Oscar

+0

所有那些奇特的控件都是html,這是用戶的服務。雖然日曆控件不會有效,但沒有javascript – DavidB

1

如果用戶在其瀏覽器中禁用了JavaScript(例如,最近Tor所建議的),這是否意味着服務器端事件Scan_Click不會運行?

是的,在runat="server"屬性允許ASP.NET您onserverclick事件轉化爲一些客戶端代碼可以通過調用JS - 如果JS被禁用,這個代碼不能被觸發。

如果是的話,是否有替代方案在asp.net網站上運行服務器端腳本,並在瀏覽器中禁用javascript?

你可以手工編寫HTML輸出,讓你在控制如何你調用回傳,這樣你可以確保你不靠JS。但是,您需要權衡一下在不啓用JS的情況下您的網站運行的可能性,更不用說只是回發。

+1

超鏈接不是唯一的地方ASP.Net使用回發,是嗎?我認爲它的使用比這更廣泛 - 選擇框更改,按鈕...... –

+0

@ T.J.Crowder無論你的正確,它可以用於輸入字段等情況下,我已經更新了我的答案是更一般的。 – James

相關問題