Asp.net mvc MVC数据访问
我是MVC技术的新手。我已经设置好了我的项目,现在我想添加一些功能。我还创建了一个数据库并将其链接到我的项目 项目表Asp.net mvc MVC数据访问,asp.net-mvc,entity-framework,model-view-controller,Asp.net Mvc,Entity Framework,Model View Controller,我是MVC技术的新手。我已经设置好了我的项目,现在我想添加一些功能。我还创建了一个数据库并将其链接到我的项目 项目表 Id, Name, ... Project Id, Name, ... 错误表 Id, Name, ... Project Id, Name, ... 在我的控制器的索引视图中,我可以看到整个项目列表,可以单击。如果我按下例如project“TEST”,我想显示一个新页面,只显示与TEST的project ID匹配的bug 我一整天都在忙这个,没法让它工作。你会怎么做
Id,
Name,
...
Project Id,
Name,
...
错误表
Id,
Name,
...
Project Id,
Name,
...
在我的控制器的索引视图中,我可以看到整个项目列表,可以单击。如果我按下例如project“TEST”,我想显示一个新页面,只显示与TEST的project ID匹配的bug
我一整天都在忙这个,没法让它工作。你会怎么做?好的,我假设你有这样的课程:
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; }
}
@Html.action(“BugDetails,Model.Id)
public ActionResult BugDetails(int id)
{
using(var db = new YourDbContext())
{
var bugs = db.Bugs.Where(m=> m.ProjectId == id);
return PartialView(bugs);
}
}
@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*
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>
上面的代码将在项目的详细视图中呈现相关的bug
我希望这将帮助你如果你是MVC新手,你需要遵循一个基本的教程来理解其中使用的原理和模式。我推荐ASP.NET网站。你是使用实体框架吗?代码优先还是数据库优先?正如@Frederick Marcoux推荐的,如果你刚开始使用MVC,这将是一个有用的教程。我在这里这是一个很好的方法:您可以执行一个名为BugDetails的操作,该操作接受参数ProjectId,并返回db.Bugs.Where(m=>m.ProjectId==ProjectId)的PartailView结果,在项目视图中调用@Html.action(“BugDetails”,“ProjectControllerName”,new{ProjectId=Model.Id),如果仍然困惑,我将提供样品answer@user5135401,您的回答将非常感谢。谢谢您的回复。最终我成功了,基本上如您所述。现在我还有另一个问题。@Aldridge1991,比如什么?最好从www.asp.net/mvc学习,您可以从MVC3开始,逐步升级