[asp.net-mvc]是它可能的模型绑定与 mvc 的 soap 请求吗?

发布时间: 2017/3/25 19:36:44
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

客户端已出 xml 发送 soap 格式的请求,我们需要通过我们的.Net 收到 MVC4 项目的服务。 请求将格式︰

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <ReceiveStatusUpdate xmlns="http://test.com">
            <StatusUpdate>
                <Reference>214563</Reference>
                <ThirdPartyReference>YOUR-REFERENCE</ThirdPartyReference>
                <Status>Pending</Status>
            </StatusUpdate>
        </ReceiveStatusUpdate>
    </soap:Body>
</soap:Envelope>

我想知道什么将最佳的方式来接收和解析此请求吗?

解决方法 1:

实现这一目标的最简单方法是使用老式 asmx web 服务。

通过 Web API 暴露需要相当多的工作,因为它不支持 SOAP 绑定开箱即用。

您可以使用 WCF 服务,但他们可以繁琐和耗时要配置,这是为他们的灵活性付出代价。

简而言之,如果你只需要支持 SOAP 绑定,使用了那份工作-asmx web 服务的工具。

只是将新项添加到你的 MVC 项目类型 Web 服务 (ASMX),如下图所示的示例的 (很明显会有您在单独的文件中定义的 StatusUpdate 类)。

/// <summary>
/// Summary description for StatusWebService
/// </summary>
[WebService(Namespace = "http://test.com")]
[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 StatusWebService : System.Web.Services.WebService
{

    [WebMethod]
    public void ReceiveStatusUpdate(StatusUpdate StatusUpdate)
    {
        //Do whatever needs to be done with the status update
    }
}

public class StatusUpdate
{
    public string Reference { get; set; }
    public string ThirdPartyReference { get; set; }
    public string Status { get; set; }
}
赞助商