2015-12-15 47 views
0

我希望當表單被提交時觸發服務器端的函數調用。我想在我的網站上使用CSP,因此不允許使用內聯腳本(我知道我可以允許它,但這就是整個問題)。asp表單提交按鈕不帶內聯javascript

我有一個提交按鈕:

<asp:Button ID="btnSubmit" runat="server" Text="Register" OnClick="RegisterUser" UseSubmitBehavior="true" /> 

但它產生這個JavaScript,並將其添加到按鈕。

onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(\"ctl00$ContentPlaceHolder$btnSubmit\", \"\", true, \"\", \"\", false, false))" 

*轉義報價其實是&「但它看起來更漂亮

由於使用了內聯腳本,我無法使用asp自己的提交按鈕並使用onClick觸發RegisterUser(如上面的代碼)。如果我只是使用正常提交按鈕提交表單,RegisterUser不會觸發。我能想到的唯一方法是在頁面加載時檢查表單提交,然後觸發RegisterUser。有另一種方法嗎?

+0

是。但我認爲你正在做這個錯誤。你的服務器上的RegisterUser函數可以調用它想要的任何函數。 – mason

+0

我的問題是綁定一個RegisterUser來提交。該按鈕的例子是我會使用,但因爲它有內聯JavaScript我不能。 – Atrotors

+0

您是否嘗試交換使用提交行爲值? – mason

回答

0

我會說這是最簡單的方法。
HTML:

<button name='registerButton'>Register</button> 

aspx.cs:

if (IsPostback && Request.Form.Allkeys.Contains("registerButton")) 
{ 
    RegisterUser(); 
}