我已经设置了一个包含大量条目的大表单。它填充我的模型,然后保存到数据库。我还需要能够将这些信息从数据库中提取出来,放入模型中,然后用它填充一堆字段以供查看。我该怎么做?
使用ASP.NET MVC 4 Razor。
var db = new TechProjPlansContext();
TechProjPlan model = new TechProjPlan();
我可以设置我的数据上下文和模型,但是我从哪里开始使用ID选择的数据条目填充模型?
答案 0 :(得分:1)
您可以通过givenId进行搜索,如果找到则返回TechProjPlan的结果类型,否则为null
var resultFound = db.TechProjPlans.Where(e=>e.Id = givenId).FirstOrDefault();
答案 1 :(得分:1)
我强烈建议您逐步执行this tutorial。从教程中回答你的问题:
写一个Model
类,如:
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
在DbSet
课程中添加Context
:(项目中TechProjPlansContext
)
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
确保您可以连接到数据库服务器,检查 Web.config 文件中的connectionStrings
。
如果您想使用ID
仅过滤一个实体,则需要控制器类:
public ActionResult Details(int id = 0) // here id is set to 0 if it's null
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
如您所见,您将返回View(movie)
,这意味着您使用从数据库获得的Details page
(Entity
)返回movie
。并拥有View
,即可呈现客户端将看到的实际 HTML 代码。在它的顶部,添加以下行:
@model MvcMovie.Models.Movie // (something TechProjPlans.Models.Movie in your project)
@Html.LabelFor(model => model.Title)
这将创建一个显示电影标题的简单文本。
在答案中深入探讨是不合逻辑的,所以请继续使用该教程。请记住,上面的代码只是一个示例,您可以在每个级别中使用无穷无尽的变化来满足您的需求。
您可以右键单击目录控制器,选择添加新并选择模型类和上下文页面上的课程。这将产生与其绑定的控制器和视图(索引,编辑,删除,详细信息,插入),这将是启动 MVC的好方法强>学习。