ControllerBase类有许多方法,如Created或CreatedAtAction,它们需要value参数。
[NonAction]
public virtual CreatedAtActionResult CreatedAtAction(string actionName,
string controllerName,
object routeValues,
object value)
{
return new CreatedAtActionResult(actionName, controllerName, routeValues, value);
}上面的文件(真的很差)写着:
要在实体体中设置格式的值。
我不明白这个参数代表什么?它实际上既没有在CreatedAtActionResult类中使用,也没有在基类中使用。此外,没有任何方法重载允许不使用它。
发布于 2017-03-05 23:09:17
该值是希望作为响应返回的新对象,与传递给Ok(value)的对象相同。
如果只想回发新的资源url,可以传递null。或者发布它的值,如果您的java脚本想直接使用它。
[HttpGet]
public IActionResult GetUser(int id)
{
var user = context.Users.SingleOrDefault(id);
if(user==null)
return NotFound();
return Ok(user);
}
[HttpPost]
public IActionResult CreateUser(UserViewModel user)
{
var newUser = new User { /* assign values */ };
context.Users.Add(newUser);
context.SaveChanges();
return CreatedAtAction(nameof(GetUser), nameof(UserController), new { id = newUser.Id }, newUser);
}这将返回newUser的json响应,并创建一个头部,其中url指向"http://example.com/user/5“或新创建的用户的任何id。
如果不希望返回json响应,只需传递null即可。
https://stackoverflow.com/questions/42615044
复制相似问题