0
我對我的路線有輕微的問題,我不是100%確定如何解決。MVC路由作爲ID類型的GUID的問題
我有一個名爲項目,我控制我想說明以下網址設置 site.com/project/(返回的所有項目)site.com/project/GUID(site.com/Project/60724573- 5949-48ee-873a更強-8f8e3ea7dd48)返回單個項目(完全不同的視圖)
項目控制器:
[RequireHttps]
public class ProjectController : Controller
{
[HttpGet]
// Get: /Project
public ActionResult Index()
{
// get list of projects and return list
return View();
}
[Route("Project/{id:Guid}")]
[HttpGet]
// Get: /Project/ID
public ActionResult Project(Guid id)
{
// get project object from DB based on ID passed
//return View(model);
return View();
}
}
在我的路線我試圖2個的路由設置:
第一:
routes.MapRoute(
name: "Project",
url: "{controller}/{action}",
defaults: new {controller = "Project", action = "Index"}
);
這讓我獲得/項目/列出所有的項目
我開始做一些研究,我發現我可以做一些工作,通過這樣的路線。
routes.MapRoute(
name: "AllProjects",
url: "Project/",
defaults: new
{
controller = "Project",
action = "Index"
});
然後我可以修改我的控制器,做這樣的事情:
[Route("Project/")]
[ActionName("AllProjects")]
[HttpGet]
// Get: /Project
public ActionResult Index()
{
storeSession();
// get list of projects and return list
return View();
}
[Route("Project/{id}")]
[ActionName("SingleProject")]
[HttpGet]
// Get: /Project/ID
public ActionResult Index(Guid id)
{
storeSession();
// get project object from DB based on ID passed
//return View(model);
return View();
}
我似乎是在一個小的僵局,我可以得到一個工作,但沒有其他的(我可以將它們翻轉緩解但我似乎無法得到雙方的工作。
我提前感謝你對這個並感謝任何意見。
什麼是你的第一個方法,它使用屬性路由的'項目問題'行動方法?您不需要添加「AllProjects」路由定義,因爲屬性路由將照顧您的請求url要求。 – Shyju