Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core Asp.Net 5(MVC)RedirectToAction()如何创建RestFul路由_Asp.net Core - Fatal编程技术网

Asp.net core Asp.Net 5(MVC)RedirectToAction()如何创建RestFul路由

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

(第一堆料溢流柱+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中:

..
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和查询字符串路由。)