【发布时间】:2009-02-25 17:10:11
【问题描述】:
我正在创建一个 DotNetNuke 4.x 模块,并且在我的模块中需要一个 AJAX CascadingDropDown。我将其定义如下...
<asp:UpdatePanel runat="server" ID="CascadingDropDowns">
<ContentTemplate>
<asp:DropDownList runat="server" ID="SelectGroupDropDownList">
</asp:DropDownList>
<ajax:CascadingDropDown runat="server" ID="SelectGroupDropDownListExtender" Category="Group"
TargetControlID="SelectGroupDropDownList" PromptText="Select a Group" ServiceMethod="GetGroups">
</ajax:CascadingDropDown>
<!-- more dropdowns & cascadingdropdown extenders here -->
在 ascx 的代码隐藏中定义的页面方法是这样的......
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public partial class EligibilityView : PortalModuleBase
{
[WebMethod]
[ScriptMethod]
public CascadingDropDownNameValue[] GetGroups(string knownCategoryValues, string category)
{
var results = new List<CascadingDropDownNameValue>();
// code here to fill the list with values...
return results.ToArray();
}
当我运行该页面时,我得到一个“[方法错误 500]” - 并且无法弄清楚我到底做错了什么。我认为问题在于页面找不到 webmethod,因为它是在 ASCX 控件中定义的,而不是页面本身。我确实需要以这种方式定义它 - 而不是创建 ASMX 服务 - 因为这将被编译为 DotNetNuke 的模块,我希望在模块内部保持简单。
任何建议将不胜感激。
【问题讨论】:
标签: .net-3.5 ajaxcontroltoolkit dotnetnuke cascadingdropdown