如何在.net core 1.0中使用mvc routing url格式?
How to use mvc routing url formate in .net core 1.0?
在.net core中,不可以使用mvc路由吗?我用过这个:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Landing}/{action=Index}/{id?}");
});
我的行动:
public IActionResult Index(string profileId)
{
this.ProfileId = profileId;
return View();
}
但如果我使用 url 类似 /Profile/index?profileId=1
的东西,它工作正常,但如果我使用 /Profile/index/1
,则该操作不起作用。表示 profileId
为空。为什么我会这样 - 有什么我遗漏的吗?
我尝试在索引方法中使用 [FromQuery]
和 [FromRoute]
,但这也不起作用。
您的路由参数名为 id
(不是 profileId
),因此请将方法更改为
public IActionResult Index(string id)
所以它匹配路由,或者您可以将路由定义修改为
template: "{controller=Landing}/{action=Index}/{profileId?}");
但这可能会影响您拥有的其他方法
在.net core中,不可以使用mvc路由吗?我用过这个:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Landing}/{action=Index}/{id?}");
});
我的行动:
public IActionResult Index(string profileId)
{
this.ProfileId = profileId;
return View();
}
但如果我使用 url 类似 /Profile/index?profileId=1
的东西,它工作正常,但如果我使用 /Profile/index/1
,则该操作不起作用。表示 profileId
为空。为什么我会这样 - 有什么我遗漏的吗?
我尝试在索引方法中使用 [FromQuery]
和 [FromRoute]
,但这也不起作用。
您的路由参数名为 id
(不是 profileId
),因此请将方法更改为
public IActionResult Index(string id)
所以它匹配路由,或者您可以将路由定义修改为
template: "{controller=Landing}/{action=Index}/{profileId?}");
但这可能会影响您拥有的其他方法