将所有 POST 请求路由到单个 ApiController
Posted
技术标签:
【中文标题】将所有 POST 请求路由到单个 ApiController【英文标题】:Route all POST requests to a single ApiController 【发布时间】:2012-04-03 13:06:51 【问题描述】:我希望将所有 PUT 和 POST 请求反序列化为适当的命令并通过消息总线发送到端点。我宁愿每个命令都没有 ApiController 也没有实现通用 Put 方法的基本控制器。
那么,是否可以将对给定动词的所有请求路由到单个 ApiController 或其他适当的东西,并且仍然受益于模型绑定?
【问题讨论】:
【参考方案1】:听起来您正在寻找的是 [HttpGet] 和 [HttpPost] 控制器属性。这允许您创建两个因该属性不同而不同的方法。例如:
[HttpGet]
public ActionResult Index(int viewId)
return View(new IndexViewModel(viewId));
[HttpPost]
public ActionResult Index(IndexViewModel model)
model.DoSomethingUsefulWithPostData();
return View(model);
第一个方法将接受一个查询字符串参数并从中构造一个视图模型。第二个将在表单发布时调用并重建模型,包括模型中来自 POST 本身的任何值。
【讨论】:
以上是关于将所有 POST 请求路由到单个 ApiController的主要内容,如果未能解决你的问题,请参考以下文章
C'ant post 使用 Angular http 将帖子发送到 api 路由
Express起步 - 路由基础 - 请求对象request - 响应对象response - 增删改查API案例