【发布时间】:2020-11-27 18:21:15
【问题描述】:
我有一个控制器“ServicesController”,其操作“编辑”采用一个字符串参数“serviceId”。
此控制器已应用如图所示的路由并按预期工作。
[Route("Services/Edit/{id}")]
public async Task<IActionResult> EditService(string id)
{
Service s = await _servicesService.GetService(id);
return View("EditService", s);
}
当我尝试从另一个操作重定向到此路由时,我只能获取显示为查询的值
return RedirectToAction("Edit", new { id = s.Id });
// redirects to /Services/Edit?id=exampleid
我搜索了一些相关的答案,人们问了同样的问题,但建议的解决方案对我不起作用,可能是因为我的操作中有路线装饰?
我也尝试过以下方法,但会重定向到带有 id 的调用操作
[Route("Services/Foo/{serviceId}")]
public async Task<IActionResult> Foo(string serviceId)
{
// redirects to /Services/Foo/exampleid
return RedirectToRoute("Edit", serviceId);
}
我哪里错了?
【问题讨论】:
-
把
[FromRoute]放在参数前面有用吗?EditService([FromRoute] string id)
标签: c# asp.net-core url-routing asp.net-mvc-routing