返回视图后修复了URL

时间:2017-08-20 17:58:17

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

我使用ASP CORE 2.0,这是我的控制器类:

public class FooController : Controller
{
    [HttpGet("Add")]
    public IActionResult Create()
    {
        return View();
    }
}

我的Navbar有以下链接:

   <a asp-controller="Home" asp-action="Index">Home</a>
   <a asp-controller="Foo" asp-action="Create">Create</a>

一切正常,但如果我点击'创建'并获取'CreateView',我的网址就是:

localhost:port/Add

我在Navbar上点击了哪个其他链接并不重要,它总是

localhost:port/Add

所以我必须自己修改网址(删除'/ Add')...

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

public class FooController : Controller
{
    [HttpGet("Add")] // Attribute Routing
    public IActionResult Create()
    {
        return View();
    }
}

属性路由:属性路由使用属性来定义路由。通过属性路由,您可以更好地控制Web API中的URI。

因此,如果您请求创建操作,那么Url将是localhost:port / Add而不是localhost:port / Create。如果你想在网址中创建,那么:

 public class FooController : Controller
    {
        [HttpGet] // Remove "Add"
        public IActionResult Create()
        {
            return View();
        }
    }