2010-04-16 62 views
3

當我使用級聯下拉時,出現[MethodError 500]。下面是我的代碼在Ajax控件工具包中的級聯下拉更新

<tr> 
<td > 
Select a Hoster: 
</td> 
<td> 
<asp:DropDownList ID="ddlFeaturedHoster" runat="server" ></asp:DropDownList> 
</td> 
</tr> 


<ajaxToolkit:CascadingDropDown ID="cddHoster" runat="server" TargetControlID="ddlFeaturedHoster" 
          PromptText="Select a Hoster" LoadingText="Loading ..." Category="ActiveHoster" 
          ServiceMethod="GetDropDownContents" ServicePath="~/Hosting/HostingService.asmx"/> 

服務代碼:

[WebMethod] 
    [ScriptMethod] 
    public CascadingDropDownNameValue[] GetActiveHosters() 
    { 

     List<CascadingDropDownNameValue> returnList = new List<CascadingDropDownNameValue>(); 
     HostersManager hosterManager = new HostersManager(); 
     List<Hosters_HostingProviderDetail> hosters = hosterManager.GetAllHosters(); 
     returnList.Add(new CascadingDropDownNameValue("--Please Select One--","0",true)); 
     foreach (Hosters_HostingProviderDetail item in hosters) 
     { 
      returnList.Add(new CascadingDropDownNameValue() { name=item.HostingProviderName, value= item.HosterID.ToString()}); 
     } 
     return returnList.ToArray() ; 
    } 
    [WebMethod] 
    [ScriptMethod] 
    public CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category) 
    { 
     knownCategoryValues = FormatCategoryWord(knownCategoryValues); 
     List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>(); 
     HostersManager hosterManager = new HostersManager(); 
     switch (category) 
     { 
      case "ActiveHoster": 
       values.AddRange(GetActiveHosters()); 
       break; 
      case "ActiveOffer": 
       values.AddRange(GetActiveOffers(1)); 
       break; 
     } 
     return values.ToArray<CascadingDropDownNameValue>(); 

    } 

    /// <summary> 
    /// Formats the category word 
    /// </summary> 
    /// <param name="value"></param> 
    /// <returns></returns> 
    private string FormatCategoryWord(string value) 
    { 
     if (string.IsNullOrEmpty(value)) return value; 
     if (value.LastIndexOf(":") > 0) value = value.Substring(value.LastIndexOf(":") + 1); 
     if (value.LastIndexOf(";") > 0) value = value.Substring(0, value.LastIndexOf(";")); 
     return value; 
    } 

} 
+0

500錯誤是一個普遍的萬能網絡服務器錯誤,它實際上是沒有意義的。在事件日誌中有什麼有用的嗎? – 2010-04-16 16:07:14

回答

3

談談你的webMethods內一些嘗試catch塊一些異常記錄?

0

我保持[ScriptService]屬性在服務類之上它的工作現在。