【问题标题】:How to define an if statement in WebMethod in C#如何在 C# 的 WebMethod 中定义 if 语句
【发布时间】:2018-03-14 00:17:25
【问题描述】:

我正在尝试在我的网站页面上的 WebMethods 之一中定义 if 语句,以检查 University Offer 字段的值是否为 null,如果值为 null,则该方法按预期执行。如果该值不为空,那么我希望它返回一条错误消息。

问题是我似乎遇到了两个问题。

  1. 我应该在 else 条件中添加什么以表明在将此值保存到此字段时出错?我尝试了返回,但我的方法的返回类型为 void,这使得返回过程难以实现。

  2. 当我执行我的代码并在我的服务器上对其进行测试时,尝试访问该特定方法会返回一条消息,指示 “测试表单仅适用于来自本地计算机的请求。

这是迄今为止我能够定义的该方法的代码。

[WebMethod]
public void EditNAA_ApplicationOffer(NAA_Applications App, int ApplicationId, string UniversityOffer)
{

    NAA_Applications _EditAO = _NAAService.Get_Applicant_Application(ApplicationId);

    if (_EditAO.UniversityOffer == null)
    {
        _NAAService.EditNAA_ApplicationOffer(ApplicationId, UniversityOffer);
    }
    else
    {

    }


}

谁能帮我解决这两个问题?

【问题讨论】:

  • 你是如何测试 web 方法的?你是怎么用的?
  • 是的。我们在我们的大学有一台服务器,它允许我们运行我们的网络服务,我将它托管在那里,然后该方法返回问题 2 中指示的错误消息

标签: c# asp.net webmethod


【解决方案1】:
  1. 我应该在 else 条件中添加什么以表明在将此值保存到此字段时出错?

您可以通过抛出 SoapException 来指示 Web 方法中发生了错误:

if (_EditAO.UniversityOffer == null)
{
    _NAAService.EditNAA_ApplicationOffer(ApplicationId, UniversityOffer);
}
else
{
    throw new SoapException("Some error has occurred", SoapException.ClientFaultCode);
}

在这种情况下,在客户端上,您将收到带有错误消息的 HTTP 错误 500。

  1. 当我执行我的代码并在我的服务器上对其进行测试时,尝试访问该特定方法时返回一条消息,指示“测试 表单仅适用于来自本地计算机的请求。

默认设置不允许从远程主机通过测试表单调用服务。如果您可以允许任何人使用您的服务,您应该在您的 web.config 中添加以下 <webServices> 部分(取自 this answer):

<configuration>
    <system.web>
     <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

【讨论】:

    猜你喜欢
    • 2015-12-26
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2022-01-08
    相关资源
    最近更新 更多