【发布时间】:2017-03-29 10:27:27
【问题描述】:
我有一个 MVC 应用程序,并且 UI 团队要求职业页面的 URL 遵循以下格式:mydomain.com/careers/{jobTitle}/{JobCode}。我可以像这样在职业控制器中做到这一点:
public ActionResult Detail(string jobTitle, string jobCode)
{
var model = getModelFromDb(JobCode);
return View(model);
}
问题是我们通过工作代码而不是标题来查找职业信息,所以我们最终得到了一个未使用的参数。我认为这不是最佳做法。特别是因为您可以输入任何您想要的职业头衔,并且仍然可以获取工作详细信息。像这样的网址仍然可以使用:mydomain.com/careers/yourmom/1234。
我想我们总是可以通过标题和代码来查找职业,但这似乎毫无意义,因为代码是独一无二的。
有没有更好的方法来实现 url 中的额外参数并避免在 url 中放置无效的职位名称?
【问题讨论】:
-
您可以尝试的一件事是将 jobTitle 设为可选,但这意味着将 url 格式更改为 {JobCode}/{jobTitle},我想这不是一个选项?
-
看看这个问题并回答stackoverflow.com/questions/24678045/…。可以在路由中使用可选参数
-
我猜你可能想要一个“slug”路由(其中仅包含
jobCode将导致一个带有jobcode和jobTitle的url)?如果有,请参考this answer
标签: c# asp.net-mvc url asp.net-mvc-routing