ASP.net 中的虚配置文件 URL
本文关键字:配置文件 URL net ASP | 更新日期: 2023-09-27 18:35:48
我正在 ASP.net 创建一个应用程序,每个用户都有自己的个人资料,他们可以与他人共享。
其个人资料的默认地址为:
www.domain.com/User/Profile/[UserID]
当他们指定虚 URL 时,有人可以输入
www.domain.com/User/Profile/[Vanity]
并被定向到同一页面。配置文件页面仅使用一个函数,在控制器中使用以下函数接收用户 ID:
public ActionResult Profile(int id)
{
ppUser viewerChoice = DB.User_GetUserByPersonID(id);
return View(viewerChoice);
}
但是,当我添加另一个需要字符串的字符串时
public ActionResult Profile(string vanity)
{
ppUser viewerChoice = DB.User_GetUserByVanity(vanity);
return View(viewerChoice);
}
这会导致不明确的匹配异常。我将如何确保它调用正确的函数?
你几乎没有选择。
- 您只能捕获字符串参数并读取它,如果它是一个数字,则将其转换为 int。
- 您可以配置 2 个单独的路由,并使用正则表达式来识别参数并相应地处理它
- 对 int 和字符串参数使用单独的操作。
我会非常小心您的方法(相同的操作,不同的参数),因为存在用户为 vanity URL 选择 int(与用户 ID 相同的格式)的风险。您将如何解决这种冲突?