在.net核心中,是不是可以使用mvc路由?我用过这个:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Landing}/{action=Index}/{id?}");
});
和我的行动:
public IActionResult Index(string profileId)
{
this.ProfileId = profileId;
return View();
}
但如果我使用类似/Profile/index?profileId=1
之类的网址,它可以正常工作,但如果我使用/Profile/index/1
,则该操作无效。表示profileId
为空。为什么会发生这种情况 - 我有什么遗漏的吗?
我尝试在索引方法中使用[FromQuery]
和[FromRoute]
,但这也不起作用。
答案 0 :(得分:2)
您的路线参数名为id
(不是profileId
),因此将方法更改为
public IActionResult Index(string id)
因此它匹配路线,或者您可以将路线定义修改为
template: "{controller=Landing}/{action=Index}/{profileId?}");
但这可能会影响您拥有的其他方法