【发布时间】:2016-11-07 10:38:31
【问题描述】:
这是我的模型课:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Test.Models
{
public class User
{
public int Id { get; set; }
public string Name { get; set; }
//public DateTime startTime { get; set; }
//public DateTime endTime { get; set; }
//public int Age { get; set; }
//public string Adress { get; set; }
}
}
这是我的控制器类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Test.DBA;
using Test.Models;
namespace Test.Controllers
{
public class UserAPIController : ApiController
{
ApiDbContext dbContext = null;
public UserAPIController()
{
dbContext = new ApiDbContext();
}
[HttpPost]
public IHttpActionResult InsertUser(User user)
{
dbContext.Users.Add(user);
dbContext.SaveChangesAsync();
return Ok(user.Name);
}
public IEnumerable<User> GetAllUser()
{
var list = dbContext.Users.ToList();
return list;
}
[HttpPost]
public IHttpActionResult DeleteUser(User user)
{
dbContext.Users.Remove(user);
dbContext.SaveChanges();
return Ok(user.Name);
}
[HttpGet]
public IHttpActionResult ViewUser(int id)
{
var student = dbContext.Users.Find(id);
return Ok(student);
}
[HttpPost]
public IHttpActionResult UpdateUser(User user)
{
User std = dbContext.Users.Find(user.Id);
std.Name = user.Name;
//std.startTime = user.startTime;
//std.endTime = user.endTime;
//std.Age = user.Age;
//std.Adress = user.Adress;
dbContext.Entry(std).State = System.Data.Entity.EntityState.Modified;
dbContext.SaveChangesAsync();
return Ok();
}
}
}
我正在尝试使用 google chrome 应用 Postman 调用 post 方法。我用原始 JSON 正文调用它:
{
Id : 1,
Name : "Sample"
}
get 方法有效,但是当我调试 post 方法时,参数始终为 null。
编辑 1:路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
【问题讨论】:
-
你使用什么类型的路由?
-
我编辑了原帖。
-
Accept 和 Content-Type 标头使用什么?
-
@foobar 对不起,我是新手,我不确定你在问什么,但如果你问的是 post 请求,我不使用任何标题,我也不知道什么是接受
-
@Saizaku,是的,这些是请求标头。我认为邮递员会在幕后为您处理这些标题。然而,这有时会导致问题。
标签: c# asp.net web http-post asp.net-web-api2