2009-02-25 59 views
2

本地它的工作原理,我知道它的「它適用於我的機器」綜合徵,但我不明白爲什麼。什麼會導致ASP.NET驗證器在部署的站點上不觸發?

簡單的網頁,領域,需要實地驗證,如

<asp:textbox id="tbEmail" runat="server" CssClass="field"></asp:textbox>           <asp:requiredfieldvalidator id="Requiredfieldvalidator2" runat="server" Display="Dynamic" ControlToValidate="tbEmail" ErrorMessage="Email is required" CssClass="required"></asp:requiredfieldvalidator> 

按鈕,

<asp:button id="btnSendRequest" runat="server" Text="Submit" CausesValidation="True"></asp:button> 

本地它觸發和代碼犯規運行,在部署的版本的驗證不火代碼運行。

應該很簡單,但一直盯着它太久了。

感謝的人 - 塔裏克

+0

如何發佈驗證器標記以及? – slolife 2009-02-25 17:11:47

回答

0

我不知道這是否是有關您的.NET版本,但你可能需要在服務器上運行ASPNET_REGIIS -i來安裝腳本進行驗證。請仔細檢查這一點,然後再做任何事情:)

我希望這會讓您朝正確的方向發展。

http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx

+0

只有客戶端驗證需要腳本,而我在他的代碼中沒有看到。不過,我在aspnet_regiis -i之前沒有安裝過腳本,並且不得不手動安裝腳本。 – cdonner 2009-02-25 02:48:58

1

我想同樣的事情 - asp_regiis將在您的網站的根目錄中創建的文件夾aspnet_client。還要注意報告的JavaScript錯誤,它們將有助於診斷。

0

在這種情況下,我發現將本地獲得的原始HTML輸出與部署服務器上的輸出進行比較是有幫助的。正如Eric所指出的那樣,您可能錯過了部署版本上的驗證JavaScript ......但這肯定會告訴您。

0

不同之處在於,在本地測試中,您將觸發客戶端驗證程序,並且只在服務器端進行。 確保您添加一個IsValid的,如果你的方法,如:

void MyClickHandler(object sender, EventArgs e) 
{ 
    if(IsValid) 
    { 
     //rest of the code 
    } 
} 
0

安裝小提琴手:Fiddler和觀看的流量。加載頁面時是否收到404或500個HTTP錯誤?它可能試圖加載必要的客戶端驗證文件,但遇到問題。

相關問題