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

本文关键字:控制器 参数 方法 访问 nuget 包访问 | 更新日期: 2023-09-27 18:33:59

>我有一个包含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: " at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject(( at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth( at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String

input, Int32 depthLimit, JavaScriptSerializer serializer( at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, Stringinput, Type type, Int32 depthLimit( at System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext controllerContext( at System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext( at System.Web.Mvc.ControllerBase.get_ValueProvider(( at System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor( at System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContextContext, ActionDescriptor actionDescriptor( at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState(">

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

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