ASP.net核心如何映射帖子并将请求路由放到HTTP://站点/区域/控制器

时间:2018-04-15 10:21:06

标签: c# asp.net-core asp.net-core-mvc asp.net-core-routing

我要映射我的帖子并将请求发送到网址\set, 我使用了http://site/area/controllerHttpPost属性。

但是当我将数据发布到服务器时,它返回 404 Not found

我的代码:

HttpPut

让MVC将我的请求映射到我的操作的方法是什么?

1 个答案:

答案 0 :(得分:1)

您似乎缺少相关路线的令牌分配。

Token replacement in route templates ([controller], [action], [area])

  

为方便起见,属性路由通过将方括号括在方括号([])中来支持令牌替换。标记[action][area][controller]将替换为定义路径的操作中的操作名称,区域名称和控制器名称的值。

看到您希望将这些路由仅隔离到POSTPUT端点,相应地更新路由

public class ApplicationsController : Controller {

    //...code removed for brevity

    //Matches POST /{area}/applications
    [HttpPost("[area]/[controller]")]
    public async Task<IActionResult> Create([FromBody]ApplicationViewModel model) {
        //...code removed for brevity
    }

    //Matches PUT /{area}/applications
    [HttpPut("[area]/[controller]")]
    public async Task<IActionResult> Update([FromBody]ApplicationViewModel model) {
        //...code removed for brevity
    }

    //...code removed for brevity
}

以上还假设已经针对区域进行了适当的配置

参考Routing to Controller Actions