我有一類叫做CustomValidation我目前調用我的C#代碼的一些邏輯:我可以在ASPX頁面中調用另一個類的方法嗎?
protected void EmailValidator(object source, ServerValidateEventArgs args)
{
string strInput = args.Value.Trim();
CustomValidation v = new CustomValidation();
args.IsValid = v.ValidateEmail(strInput);
}
我寧願把這種方法從我的ASPX頁面,以簡化的東西,像這樣:
<asp:CustomValidator OnClick="ValidateEmail" />
然而,由於ValidateEmail是不是在同一個班的頁面:
'ASP.editusers_aspx' does not contain a definition for 'ValidateEmail' and no extension method 'ValidateEmail' accepting a first argument of type 'ASP.editusers_aspx' could be found (are you missing a using directive or an assembly reference?)
有沒有一種方法調用從CustomValidation方法類在我的ASPX代碼?我試過以下無濟於事:
<%@ Import Namespace="ThisProject.CustomValidation" %>
OnClick="<%= CustomValidation.ValidateEmail()" %>
這是我在上下文中使用:
<asp:TextBox ID="txtEmail" runat="server" Text='<%# Bind("UserEmail") %>' MaxLength="30" />
<asp:CustomValidator ID="vldEmail" runat="server" ControlToValidate="txtEmail" ValidateEmptyText="true" OnServerValidate='<%# RetailCrime.CustomValidation.ValidateEmail((string)(txtEmail.Text)) %>' ErrorMessage='<br /><label class="invisible noplaceholder"> </label>Please enter a valid email.' Display="Dynamic" CssClass="validatormessage" />
如果我將我的方法更改爲靜態,我得到'Member'RetailCrime.CustomValidation.ValidateEmail(string)'無法通過實例引用進行訪問;使用類型名稱來限定它。 – mrcoulson
嘗試使用'CustomValidation'來限定它,即'CustomValidation.ValidateEmail' –
我認爲那是因爲你在另一個地方用實例調用它。嘗試複製該方法並將其稱爲ValidateEmailStatic,然後重試。 –