문제

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의 CodeBehind에 페이지 메소드가 정의되어 ...

[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]을 얻습니다. 그리고 내가 무엇을 잘못하고 있는지 알 수 없습니다. 문제는 페이지가 페이지 자체가 아닌 ASCX 컨트롤 내부에 정의되어 웹 메드를 찾을 수 없다는 것입니다. DotnetNuke 용 모듈로 컴파일 될 예정이므로 ASMX 서비스를 생성하지 않고 이런 방식으로 정의해야합니다.

모든 제안은 대단히 감사 할 것입니다.

도움이 되었습니까?

해결책

ASCX에있는 동안 해당 웹 서비스 방법에 액세스 할 수있는 쉬운 방법이 없을 것이라고 생각합니다. 이 경우 "Simple"은 아마도 모듈에 ASMX를 추가하는 것을 의미합니다.

ASMX를 추가하는 것이 문제가 될 것이라고 생각하는 이유가 있습니까?

모듈 패키지에 다른 파일을 추가하려면 컨트롤 자체를 추가하는 데 사용하는 것과 동일한 프로세스가 필요합니다. 매니페스트에서는 파일 섹션에 지정한 다음 패키지에서 끝나야합니다. 패키지에서 리소스 zip 파일을 사용하고 해당 zip을 지정하여 .ascx 및 .asmx 파일 (및 기타 콘텐츠 파일)이 있는지 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top