我有一个包含MVC控制器的nuget包 - MyController有一个方法MethodWithStringParameter(string a)
和另一个方法MethodWithoutParameters()
。
我在我的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
};
}
}
当我尝试点击MethodWithStringParameter
方法时,我得到一个例外
无效的JSON原语:a。
但是,我可以毫无问题地点击方法MethodWithoutParameters
。
详细例外
输入:“System.ArgumentException”
消息:“无效的JSON原语:a。”
StackTrace:“位于System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String)的System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32深度)的System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()处。系统中的System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext controllerContext)上的System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer序列化程序,字符串输入,类型类型,Int32 depthLimit)处的输入,Int32 depthLimit,JavaScriptSerializer序列化程序。 System.Web.Mvc.ControllerActionInvoker.GetParameterValues上的System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext,ParameterDescriptor parameterDescriptor)中的System.Web.Mvc.ControllerBase.get_ValueProvider()处的Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext) (ControllerContext controllerContext,ActionDescript System.Web.Mvc.Async.AsyncControllerActionInvoker上的或actionDescriptor。<> c__DisplayClass21.b__19(AsyncCallback asyncCallback,Object asyncState)“
答案 0 :(得分:0)
您是否尝试将空体发布到此网址http://domainname/My/MethodWithStringParameter?a=abcd