c# - .net 核心中俱乐部的根个人资料页面
问题描述
对于俱乐部页面,我想为他们提供如下网址。我也在使用 .net 5 和 ef 核心。
我将每个俱乐部的网址存储在数据库中,这是俱乐部名称字段的条纹版本。
我有一个带有 action 方法的控制器 obv,控制器称为 ClubController.cs
public async Task<IActionResult> Index(string url) {
var club = _context.Clubs
.Where(w => w.isActive == true && w.Url == url && w.isDeleted ==
false).ToList();
}
问题是我的配置映射中需要什么来允许 url 样式但仍允许其他控制器运行
我可以有多个 useend 点声明吗?或者我是否因为不仅有www.yoursite.com/club/clubpage而过于复杂?
我的启动配置。
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
如果我应该做后者,为什么我的参数必须始终是 Id?
public async Task<IActionResult> Index(string url) {
return (IActionResult)_context.Clubs.Where(w => w.isActive == true && w.Url == url && w.isDeleted == false).FirstOrDefault();
}
编辑 2 好的,这让我到达了我需要去的地方,但他们是不是更进一步,只删除俱乐部的名字?
endpoints.MapControllerRoute(name: "club",
pattern: "club/{clubname?}",
defaults: new { controller = "Club", action = "Index" });
当我有这个时,我仍然希望俱乐部能够说 /Club/Timeline 但上面的根也没有分配给我它只是继续索引。
编辑 3
如果我执行以下操作,它可以让我同时拥有两种情况,但我觉得我不需要同时做这两种情况?
endpoints.MapControllerRoute(name: "TimeLine",
pattern: "Club/TimeLine/{clubname?}",
defaults: new { controller = "Club", action = "ClubTimeLine" });
endpoints.MapControllerRoute(name: "Club",
pattern: "Club/{clubname?}",
defaults: new { controller = "Club", action = "Club" });
解决方案
推荐阅读
- oracle - 如何动态地将多行中的数据选择为一行多列?
- php - 将一维数组转换为多维数组
- python - UTF-8 编码将字符串转换为带有奇怪字符的字节
- microsoft-graph-api - 微软图形 | 在一个 API 调用上结合搜索和过滤
- c++ - clang++ 8.0.1 自分配重载警告
- javascript - 如何从选项对象内部调用操作?
- linux - Bash 时差计算
- html - 如何摆脱 HTML 中正文列之间的边距间隙(使用 css 模板但自己编辑了很多)
- firebase - 什么是 firebase / firestore 时区
- java - 如何将 URL 图像传递给另一个活动 Android 工作室