2015-07-21 51 views
3

我是MVC技术的新手。我已经建立了我的项目,现在我想添加一些功能。我也创建了一个数据库并将其链接到了我的项目中。MVC数据访问

项目表

Id, 
Name, 
... 

错误表

Project Id, 
Name, 
... 

在我的控制器的索引视图我可以看到的项目,这些项目是可以点击的整个列表。如果我按示例项目“TEST”,我想显示一个新页面并只显示与TEST的项目ID相匹配的错误。

我一直在这一天,不能得到它的工作。你会怎么做?

+4

如果你是MVC的新手,你需要遵循一个基本教程来理解其中使用的原则和模式。我为此推荐ASP.NET网站。 –

+0

你在使用实体框架吗?代码优先还是数据库优先? –

+0

实体框架 – Aldridge1991

回答

2
  1. 从点开始我会假设你知道如何使用MVC搭建CRUD视图。
  2. 因此,基于1点,你可以欣赏[创建,编辑,列表,详细信息]您的控制器项目[ProjectController]
  3. 在控制器项目,你可以写一个动作叫BugDetails,你在呼唤鉴于Details

内,您的项目控制器

public ActionResult BugDetails(int id) 
{ 
    using(var db = new YourDbContext()) 
    { 
      var bugs = db.Bugs.Where(m=> m.ProjectId == id); 
      return PartialView(bugs); 
    } 
} 

BugDetails.cshtml

@model IEnumerable<YourProject.Models.Bug> 
<table> 
    <tr> 
     <th>Bug Name</th> 
    </tr> 
    @foreach(var bug in Model) 
    { 
     <tr> 
     <td>@bug.Name</td> 
     </tr> 
    } 
</table> 

Details.cshtml是为项目负责人的相关

@model YourProject.Models.Project 

//... the details view goes here 

@Html.Action("BugDetails","Project",new {id= Model.id}) // Project can be changed depends on how you called your project controller, I assumed that you called it *ProjectController* 

上面的代码将呈现的细节相关的错误查看项目

我希望这会帮助你的

+0

最后,我已经开始工作了,基本上就像你提到的那样。现在我有另一个问题.. – Aldridge1991

+0

@ Aldridge1991像什么?更好的学习www.asp.net/mvc,你可以从MVC3开始,逐步升级到更高版本 – user5135401

1

好的,我会假设你有你的clasess这样的:

public class Project 
{ 
    [Key] 
    public int Id { get; set; } 

    public string Name { get; set; } 

    ... 

    public ICollection<Bug> Bugs{ get; set; } 
} 

public class Bug 
{ 
    [Key] 
    public int Id { get; set; } 

    public string Name { get; set; } 

    ... 
    public int ProjectId { get; set; } 

    [ForeignKey("ProjectId")] 
    public virtual Project Project { get; set; } 

} 

然后得到错误的gven项目的集合:

var bugs = _dbContext.Bugs.Where(p => p.ProjectId == id).ToList();