C# 生成一个简单的WebAPI post请求

C# 生成一个简单的WebAPI post请求,c#,asp.net-web-api,C#,Asp.net Web Api,我真的很难在url中发出一个基本的post请求来支持WebAPI教程 我想在浏览器中执行类似操作:并让帖子注册。但是,我似乎无法正确地形成请求。正确的方法是什么 我收到的错误是: {“Message”:“请求无效。”,“MessageDetail”:“参数字典包含方法”System.String Get(Int32)的不可空类型“System.Int32”的参数“id”的空条目”'在'twin_groupapi.Controllers.GroupController'中。可选参数必须是引用类型、

我真的很难在url中发出一个基本的post请求来支持WebAPI教程

我想在浏览器中执行类似操作:并让帖子注册。但是,我似乎无法正确地形成请求。正确的方法是什么

我收到的错误是:

{“Message”:“请求无效。”,“MessageDetail”:“参数字典包含方法”System.String Get(Int32)的不可空类型“System.Int32”的参数“id”的空条目”'在'twin_groupapi.Controllers.GroupController'中。可选参数必须是引用类型、可为null的类型,或者声明为可选参数。“}

我的模型:

    public class Group  
    {
     public Int32 GroupID { get; set; }
     public Int32 SchoolID { get; set; }
     public string GroupName { get; set; }
    }
路由:

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
控制器:

    //[Route("api/Group/Post")]
    [HttpPost]
    public void Post([FromUri] string NewValue)
    {

        string newstring = NewValue;

    }

在浏览器中点击URL只会执行GET请求

您可以:

  • 创建一个简单的
    ,其方法设置为
    POST
    ,并形成输入,以输入要发送的值(如
    NewValue
    ),或
  • 编写一些JavaScript,使用您喜欢的框架创建AJAX POST请求,或者
  • 使用诸如设置POST请求、调用它以及检查结果之类的工具

错误消息很可能来自Get()方法

正如@StriplingWarrior所说的,当方法标记为
[HttpPost]
时,您正在发出GET请求。如果在浏览器中使用开发人员工具(在大多数现代浏览器中使用F12来激活它们),则可以看到这一点

看看


注意:参数名称的c#约定是大小写,第一个字母是通用的,而不是大写,例如
string newValue

您是否有另一个名为post、动词为
httpget
的方法?只有另一个动词是
//GET:api/Group[Route(“api/Group/GET”)][httpget]public Array GET()