【问题标题】:Route all POST requests to a single ApiController将所有 POST 请求路由到单个 ApiController
【发布时间】:2012-04-03 13:06:51
【问题描述】:

我希望将所有 PUT 和 POST 请求反序列化为适当的命令并通过消息总线发送到端点。我宁愿每个命令都没有 ApiController 也没有实现通用 Put 方法的基本控制器。

那么,是否可以将对给定动词的所有请求路由到单个 ApiController 或其他适当的东西,并且仍然受益于模型绑定?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api


    【解决方案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 本身的任何值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      相关资源
      最近更新 更多