2017-05-05 67 views
0

這是我的整個頁面正文的HTML:的ScriptManager造成回傳與驗證

<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <div> 
      <asp:TextBox runat="server" ValidationGroup="vg1" ID="txtTest" /> 
      <asp:RequiredFieldValidator runat="server" ErrorMessage="Required" ControlToValidate="txtTest" ValidationGroup="vg1" /> 
      <asp:Button runat="server" ValidationGroup="vg1" Text="test" /> 
     </div> 
    </form> 
</body> 

沒有什麼在頭中。沒有額外的.js或類似的東西。

如果我刪除ScriptManager,RequiredFieldValidtor完美工作,如果文本框沒有填寫(如預期的那樣顯示「Required」),則不允許回發。

隨着ScriptManager的到位,回發總是發生。該錯誤顯示但回發仍然發生。是什麼賦予了?這並不適用於這種方式。我是否缺少一個參數或者ScriptManager中的一些參數來讓這一切都起作用?

.NET版本可能是問題

我已經確定這部作品在.NET 4.0和早期的教完全沒有問題,但如果你使用4.5及更高失敗。 4.5中斷了,還是我沒有正確實現?

謝謝!

+1

[爲什麼ScriptManager導致ASP.NET(Web窗體)中的RequiredFieldValidator回發?](http://stackoverflow.com/questions/31877559/why-scriptmanager-causes-postback-on-requiredfieldvalidator-in- asp-net-web-form) – Gusman

+0

請只編輯你之前的問題,在發佈後添加其他信息,不要刪除然後重新提問相同的問題(將被標記爲已刪除的問題)。 –

+0

上一個問題完全不同。這很簡單,所以我認爲它會比刪除整個最後一篇文章的文本並重新開始更好。 –

回答

0

由於.NET版本4.5的介紹不顯眼的驗證它已成爲必須註冊您的jQuery資源,你的Global.asax頁面如下:

void Application_Start(object sender, EventArgs e) 
{ 
    string JQueryVer = "1.7.1"; 
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition 
    { 
     Path = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js", 
     DebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js", 
     CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js", 
     CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js", 
     CdnSupportsSecureConnection = true, 
     LoadSuccessExpression = "window.jQuery" 
    }); 

} 

但是你還必須定義腳本經理如何正確在類似這樣的標記:

<asp:ScriptManager runat="server" EnableScriptGlobalization="True" EnableCdn="True"> 
    <Scripts> 
     <asp:ScriptReference Name="jquery" /> 
     <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" /> 
    </Scripts> 
</asp:ScriptManager> 

如果不啓用CDN中的驗證器不能正常工作,並允許回發。

此信息是從各種資源和試驗中獲得的。在我原來的問題中,所有必要的是如上所述定義腳本管理器,它工作正常。

希望這些信息可以讓開發人員使用驗證不顯眼的驗證回發之間連點。