我使用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')...
我该如何解决这个问题?
答案 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();
}
}