我有一個MVC應用程序,用戶界面團隊已經要求該職位頁面的網址遵循以下格式:mydomain.com/careers/{jobTitle}/{JobCode}
。我能做到的是,在職業生涯控制器是這樣的:如何處理未使用的MVC路由參數
public ActionResult Detail(string jobTitle, string jobCode)
{
var model = getModelFromDb(JobCode);
return View(model);
}
的問題是,我們的工作代碼查找職業信息沒有標題,所以我們結束了一個未使用的參數。我不認爲這是最佳做法。特別是因爲你可以輸入任何你想要的職業頭銜,並仍然可以獲得工作細節。像這樣的網址仍然有效:mydomain.com/careers/yourmom/1234。
我想我們總是可以通過標題和代碼查找職業,但由於代碼是獨特的,這似乎毫無意義。
有沒有更好的方法來實現URL中的額外參數,並保持允許無效的作業標題放在網址中?
你可以嘗試的一件事是使jobTitle可選,但這意味着將網址格式更改爲{JobCode}/{jobTitle},我想這不是一個選項? – Zippy
看看這個問題和答案http://stackoverflow.com/questions/24678045/routing-optional-parameters-in-asp-net-mvc-5。可以在路由中使用可選參數 – Emil
我猜你可能想要一個'slug'路由(其中只包括'jobCode'將導致一個包含'jobcode'和'jobTitle'的url)?如果是這樣,請參考[這個答案](http://stackoverflow.com/questions/30349412/how-to-implement-url-rewriting-similar-to-so/30363600#30363600) –