将数据从 Class 库项目发布到 MVC WEB API 控制器时面临崩溃

Facing crash when Posting the data to MVC WEB API Controller from Class Library project

通过 Class 库项目将数据发布到 MVC Web API 控制器时遇到问题。

MVC Web API 托管在本地主机的 84 端口。

Class 发送请求的库代码

public String Put(OM_ServicesType obj)
{
    string URI = "http://localhost:84/WebAPIServiceType/Put");
    String myParameters = "ServiceType=qa&description=qa&Sid=1";

    using (WebClient wc = new WebClient())
    {
        wc.Headers[HttpRequestHeader.ContentType] = 
                                                  "application/x-www-form-urlencoded";
        string HtmlResult = wc.UploadString(URI, myParameters);
        return JsonConvert.DeserializeObject<String>(HtmlResult);
    }
}

下面是崩溃

The remote server returned an error: (404) Not Found.

MVC Web API代码

[HttpPost]
public HttpResponseMessage Put(int Sid, string ServiceType, string description)
{
    var obj = new Dal_ServiceType { ServicesTypeID = Sid, Name = ServiceType, 
                                              Description = description};
    var re = obj.Put();
    return Request.CreateResponse(HttpStatusCode.OK, new { ErrorMessage = re });
}

好的,我找到了解决方案。

WEB代码API控制器动作方法

[HttpPost]
public HttpResponseMessage Action_Method_Name([FromBody] ClassName obj)
{
    var objUpdated = new Dal_Provider
    {
        ProviderID = obj.ProviderID,
        ZipCode = obj.ZipCode
    };
    var re = objUpdated.Post();
    return Request.CreateResponse(HttpStatusCode.OK, new { ErrorMessage = re });
}

调用网络的代码API

public String Post(ClassName obj)
{
    String url = string.Format("{0}{1}", "DomainName comes here",
                    "Controller Name/Action Method Name");
    var httpClient = new HttpClient();
    var responseMessage = httpClient.PostAsync(url, 
            new ObjectContent<ClassName>(obj, new JsonMediaTypeFormatter())).Result;
    return responseMessage.ReasonPhrase;
}