Fix*_*xer 3 model-view-controller asp.net-mvc design-patterns url-routing ruby-on-rails-3
我有一个包含一个或多个问题的Project类:
public class Project
{
public int Id {get; set;}
public string Name {get; set;}
public List<Issue> Issues {get; set;}
}
public class Issue
{
public int Id {get; set;}
public string Description {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我在构建我的mvc应用程序时遇到问题,以便问题是URL路由上项目的子项?
/projects/details/1/issues/ - Display list of project issues
/projects/details/1/issues/1 - Display issue #1
/projects/details/1/issues/2 - Display issue #2
/projects/details/1/issues/create/ - Create a new issue for project #1
Run Code Online (Sandbox Code Playgroud)
我最初的想法是创建一条导致以下Action Method的路线
public ActionResult Details(int projectId, string action)
{
if(action =="issues")
{
//Call ActionMethod...
}
}
Run Code Online (Sandbox Code Playgroud)
但它感觉不对.有什么建议?用RoR这样的事情是真的吗?
您可以为此操作提供这样的路线:
routes.MapRoute("ProjectIssues",
"projects/{projectID}/issues/{issueID}",
new { controller=Projects, action=Details});
Run Code Online (Sandbox Code Playgroud)
然后http://domain.com/projects/3/issues/5等请求将映射到ProjectsController中的Details操作.
您可以在路径中获取具有相同参数名称的参数
public ActionResult Details(int projectID,int? issueID)
{
if(issue.HasValue)
{
return RedirectToAction("IssueDetails",new {ProjectID=projectID,IssueID=issueID});
}
else
{
return RedirectToAction("AllIssues",new {ProjectID=projectID});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |