Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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/.net/20.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# 如何从nuget包访问控制器内的参数化方法?_C#_.net_Json_Asp.net Mvc_Model Binding - Fatal编程技术网

C# 如何从nuget包访问控制器内的参数化方法?

C# 如何从nuget包访问控制器内的参数化方法?,c#,.net,json,asp.net-mvc,model-binding,C#,.net,Json,Asp.net Mvc,Model Binding,我有一个nuget包,其中包含一个MVC控制器-MyController,它有一个带String参数String a的方法method和另一个不带OutParameters的方法method。 我已经在我的MVC服务中安装了这个nuget包,并且已经注册了控制器和路由 public sealed class MyController : Controller { [System.Web.Mvc.HttpPost] public HttpResponseMessage Method

我有一个nuget包,其中包含一个MVC控制器-MyController,它有一个带String参数String a的方法method和另一个不带OutParameters的方法method。 我已经在我的MVC服务中安装了这个nuget包,并且已经注册了控制器和路由

public sealed class MyController : Controller
{
    [System.Web.Mvc.HttpPost]
    public HttpResponseMessage MethodWithStringParameter(string a)
    {
        return new HttpResponseMessage
        {
            StatusCode = HttpStatusCode.OK
        };
    }

    [System.Web.Mvc.HttpPost]
    public HttpResponseMessage MethodWithoutParameters()  
    {
        return new HttpResponseMessage
        {
            StatusCode = HttpStatusCode.OK
        };
    }
}
当我尝试用stringParameter方法点击method时,我得到一个异常

无效的JSON原语:a

但是,我能够在没有参数的情况下找到方法,没有任何问题

详细例外

类型:System.ArgumentException

消息:无效的JSON原语:a

StackTrace:System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject位于System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternalInt32深度位于System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserializeString输入,Int32 depthLimit,位于System.Web.Script.Serialization.JavaScriptSerializer.DeserializeJavaScriptSerializer序列化程序的JavaScriptSerializer序列化程序,字符串输入,类型,Int32深度限制位于System.Web.Mvc.JsonValueProviderFactory.GetValueProviderControllerContext controllerContext位于System.Web.Mvc.ValueProviderFactoryCollection.GetValueProviderControllerContext controllerContext位于System.Web.Mvc.ControllerBase.get_ValueProvider位于System.Web.Mvc.ControllerActionInvoker.GetParameterValueControllerContextcontrollerContext,ParameterDescriptor ParameterDescriptor位于System.Web.Mvc.ControllerActionInvoker.GetParameterValuesControllerContext,ActionDescriptor ActionDescriptor位于System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uuDisplayClass21.b_u19; asyncCallback asyncState


您是否尝试将空正文发布到此urlhttp://domainname/My/MethodWithStringParameter?a=abcd

我还尝试使用此处提供的一些解决方案,但没有任何帮助。您正在发送什么请求?使用Chrome的高级Rest客户端应用程序以post请求的形式发送这两个请求。对于第一个方法,将a=1作为原始主体传递,而对于第二个方法,则不传递任何内容。内容类型:application/json;charset=utf-8表示这两个都不是有效的JSON。你期待什么?