0

プロジェクトでフォームを送信するための Web サービスを作成しましたが、機能しません。Umbraco CMS 6.1.5 を使用しました。

説明:

私はMaster.masterに書きました:

<form id="AbniyehMainForm" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"
            EnablePageMethods="true" ScriptMode="Auto">
            <Services>
                <asp:ServiceReference Path="~/Services/ApplicationFormService.asmx" />
            </Services>
            <Scripts>
                <asp:ScriptReference Path="/scripts/building.js" />
            </Scripts>
        </asp:ScriptManager>
</form>

私はApplicationFormService.asmxに書きました:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class ApplicationFormService : System.Web.Services.WebService
{
    [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public string HelloWorld()
    {
        return "Hello World";
    }
}

私はApplicationFormControl.ascx.csに書きました:

[WebMethod]
    [System.Web.Script.Services.ScriptMethod(UseHttpGet = true)]
    public static void HelloWorld()
    {
        ApplicationFormService s = new ApplicationFormService();
        s.HelloWorld();
    }

私はdefault.aspxに書きました:

<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="Defraz.Building.WebApp.Services" %>

<script runat="server" type="text/C#" language="c#">
[WebMethod]
[System.Web.Script.Services.ScriptMethod()]
public static string HelloWorld()
{
    return "HelloWorld!!!";
}
</script>

私はBuilding.jsで書きました:

function btnSendApplicationForm_onclick() {
     PageMethods.HelloWorld(_onMethodComplete, _onMethodError);
}

function _onMethodComplete(result) {
    alert(result.message);
}

function _onMethodError(result) {
    alert(result._message);
}

コードが PageMethods.HelloWorld(_onMethodComplete, _onMethodError) を実行しているときに、エラー フォーム _onMethodError を受け取りました。

「サーバー メソッド 'HelloWorld' が失敗しました。」

私を助けてください。

4

3 に答える 3

2

v6.x を使用しているため、Umbraco WebAPI 実装を使用できますか? したがって、Web サービスを作成する代わりに、次の記事に従って WebAPI コントローラー/アクションを作成します: http://our.umbraco.org/documentation/Reference/WebApi/

これの利点は、Umbraco のすべてのコンテキストとサービスにコントローラーから直接アクセスできることです。

明らかにこれは、必ずしも の利点が得られるとは限らないことを意味しますが、webmethodjson を返し、それを強力な型にデシリアライズすると、作業の多くを で行うことができます。

于 2013-10-09T09:38:40.453 に答える
0

WebMethods をユーザー コントロールに含めることはできません。Web サービス (.asmx) を使用して、そこに Web メソッドを配置することをお勧めします。

于 2013-10-09T08:28:13.813 に答える
0

I don't think you write a web service in Umbraco, - sounds like you're trying to co-locate one with Umbraco. Why not add a Service Reference to an existing web service? Alternatively include the WebApi libs in your Umbraco solution and make a Restful call.

于 2013-10-15T06:50:43.237 に答える