Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RESTAPI调用显示404错误_C#_Jquery_Rest - Fatal编程技术网

C# RESTAPI调用显示404错误

C# RESTAPI调用显示404错误,c#,jquery,rest,C#,Jquery,Rest,我试图在RESTAPI的post调用中发送数据。由于数据非常大,所以我无法使用查询字符串发送数据。 下面是我的Ajax post调用 var urlstring = 'http://localhost/PersonAPI/api/Operations/TestMethod' $.ajax({ type: "POST", url: urlstring,

我试图在RESTAPI的post调用中发送数据。由于数据非常大,所以我无法使用查询字符串发送数据。 下面是我的Ajax post调用

var urlstring = 'http://localhost/PersonAPI/api/Operations/TestMethod'
 $.ajax({
                            type: "POST",
                            url: urlstring,
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            data:
                                {
                                    'employeedetails':JSON.stringify(exceljson)
                                },

                            success: function (data) {
                              //Some operation


                            }

                        });
我的Rest api包含多个post方法, 下面是api控制器

public class OperationsController : ApiController
{

    [System.Web.Http.HttpPost]
    [HttpRoute("api/Operations/UploadDetails")]
    public HttpResponseMessage UploadDetails(string EmployeeDetails)
    {
        //SomeCode
        return  Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
    }


     [System.Web.Http.HttpPost]
     [System.Web.Http.ActionName("TestMethod")]
     public HttpResponseMessage TestMethod(string EmployeeDetails)
     {
        //SomeCode
         return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
     }
}
发送呼叫后显示404错误。 我试图使用表单数据,但它返回字符串数组。 我正在传递对象列表。此对象有6个属性。从jquery传递时,输入列表正在转换为json字符串。
我不知道如何传递数据。404错误表明客户端能够与给定的服务器通信,但服务器找不到请求的内容。我认为您应该首先在POSTMAN中检查您的API。它是否工作正常。我是否可以查看您的后端代码,以便目前尝试解决您的问题,
EmployeeDetails
需要一个查询字符串参数。您应该使用
[FromBody]

 [System.Web.Http.HttpPost]
 [System.Web.Http.ActionName("TestMethod")]
 public HttpResponseMessage TestMethod([FromBody]EmployeeDetails employeeDetails)
 {
    //SomeCode
     return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
 }
并创建相应的模型:

public class EmployeeDetails
{
    // add your properties
}
在前端,您的请求对象应该如下所示:

{
    type: "POST",
    url: urlstring,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: JSON.stringify(exceljson)
}

这个问题在我使用HttpRoute时得到了解决

下面是代码

[HttpRoute("api/operations/TestMethod")] 
public HttpResponseMessage TestMethod(string EmployeeDetails)
     {
        //SomeCode
         return Request.CreateResponse(HttpStatusCode.OK, response.GenerateResponse());
     }

你能告诉我们urlstring的值吗?还有你的控制器声明。关于404是什么意思的困惑吗?不,我正在寻找404错误出现的原因,但是你没有提供控制器定义(只有方法),你没有提供,我认为这是一个关键部分,您正在使用的URL。您的URL应该是
http://localhost/PersonAPI/api/Operations/TestMethod
而不是
localhost://PersonAPI/api/Operations/TestMethod
。你为什么有
PersonAPI
?它是指虚拟目录吗?OP know that=>否,我正在寻找出现404错误的原因。当我使用查询字符串传递参数时,它可以工作,但由于我有更多数据,查询字符串由于其大小限制而失败。这是不工作的。。是否存在任何可能的路由问题?必须是。它对我有用-它解决了404问题。如果我发布到
http://server/api/Operations/TestMethod
它点击并提供数据。我不明白它现在是怎么不工作的,当你们之前说它会成功的时候?是的,它成功了,但数据并没有传递给api方法。API方法“TestMethod”得到空值。你能用我的系统遥控器检查一下吗。我的电子邮件id是pingaledu@gmail.com. 请将您的id邮寄给我,以便我与您共享团队查看器credentials@Pavan哦,我现在明白你的问题了。您试图为一个body参数传递一个名称,这是不可能的,除非您使用multi-part。我也尝试过删除这个名称。所以我改变了ajax数据:exceljson。还尝试了JSON.stringify(exceljson)。但没有起作用