Asp.net core Asp.Net 5(MVC)RedirectToAction()如何创建RestFul路由
(第一堆料溢流柱+MVC6 noob) 使用Asp.NET5MVC6RC-1 我希望我的控制器成功创建POST操作,以重定向到同一控制器中的Edit GET操作。控制器在一个区域内。当我使用RedirectToAction方法调用以下代码时,生成的url总是有一个querystring参数“./Edit?id=3”,而不是RestFul路径。“/编辑/3”。我尝试了一个特定的routemap定义,但没有任何区别。有没有办法创建RestFul“./Edit/3”路由? 多谢各位 。。 routes.MapRoute(名称:“编辑”, 模板:“{area}/{controller}/Edit/{id}”); 没什么区别 示例代码: 在Startup.cs中:Asp.net core Asp.Net 5(MVC)RedirectToAction()如何创建RestFul路由,asp.net-core,Asp.net Core,(第一堆料溢流柱+MVC6 noob) 使用Asp.NET5MVC6RC-1 我希望我的控制器成功创建POST操作,以重定向到同一控制器中的Edit GET操作。控制器在一个区域内。当我使用RedirectToAction方法调用以下代码时,生成的url总是有一个querystring参数“./Edit?id=3”,而不是RestFul路径。“/编辑/3”。我尝试了一个特定的routemap定义,但没有任何区别。有没有办法创建RestFul“./Edit/3”路由? 多谢各位 。。 routes
..
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
..
app.UseMvcWithDefaultRoute();
..
}
..
控制器类:
[Area("Administration")]
[Route("[area]/[controller]/")]
public class PersonController : Controller
{
..
[HttpGet]
[Route("Edit/{Id:int}")]
public IActionResult Edit(int id)
{
..
[HttpPost]
[Route("[action]")]
public IActionResult Create(PersonViewModel viewModel)
{
..
return RedirectToAction("Edit", new { id = newPersonId});
}
..
除了美学方面的原因之外,还有其他原因吗?Nick,是的,在这种情况下,原因可能更多的是美学和应用RestFul路线,而不是技术上的,但我仍然想知道这是否可能供将来参考。为了让我继续,我现在将创建一个额外的编辑方法来处理查询字符串“route”。谢谢。无需创建新方法等。下面对编辑方法HttpGet属性的更改可以正常工作。这是新的方法装饰。
[HttpGet(“Edit”)][Route(“Edit/{Id:int}”)]public-IActionResult-Edit(int-Id){..
(注意:这将使它同时适用于RestFul和查询字符串路由..)除了美学方面的原因之外,还有什么其他的原因使它有所不同吗?Nick,是的,在这种情况下,原因可能更多的是美学和应用RestFul路由,而不是技术上的,但我仍然想知道这是否可能供将来参考。为了让我继续,我将创建一个额外的编辑方法来处理查询stri现在正在使用“route”。谢谢。无需创建新方法等。以下对编辑方法HttpGet属性修饰的更改有效。这是新方法修饰。[HttpGet(“Edit”)][route(“Edit/{Id:int}”)]public IActionResult Edit(int Id){..
(注意:这将使它同时适用于RestFul和查询字符串路由。)