如何在C#中使用WebMethod定义if语句

时间:2018-03-14 00:17:26

标签: c# asp.net webmethod

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

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

  1. 我在else条件中放入什么来表示将此值保存到此字段时出错?我试过返回但是我的方法有一个返回类型的void,这使得返回过程很难实现。

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

  3. 这是我到目前为止能够定义的方法的代码。

    [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
        {
    
        }
    
    
    }
    

    任何人都可以帮我解决这两个问题吗?

1 个答案:

答案 0 :(得分:1)

  
      
  1. 我在else条件中添加什么来表示将此值保存到此字段时出错?
  2.   

您可以通过抛出SoapException

来指示Web方法中发生的错误
if (_EditAO.UniversityOffer == null)
{
    _NAAService.EditNAA_ApplicationOffer(ApplicationId, UniversityOffer);
}
else
{
    throw new SoapException("Some error has occurred", SoapException.ClientFaultCode);
}

在这种情况下,在客户端上,您将收到HTTP错误500,并提供错误消息。

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

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

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