2014-10-30 45 views
0

我已經建立了一個包含大量條目的大表單。它填充我的模型,然後保存到數據庫。我還需要能夠將這些信息從數據庫中提取出來,放入模型中,然後用它填充一些字段供審閱。我該怎麼做呢?如何從數據庫條目填充我的模型?

使用ASP.NET MVC 4 Razor。

var db = new TechProjPlansContext(); 

TechProjPlan model = new TechProjPlan(); 

我可以設置我的數據上下文和模式,但我在哪裏從這裏去填充通過ID選擇的數據輸入模型?

回答

1

您可以通過搜索givenId如果發現返回的結果類型TechProjPlan,否則空

var resultFound = db.TechProjPlans.Where(e=>e.Id = givenId).FirstOrDefault(); 
+0

好的,工作!現在我將它放在對象類型TechProjPlan中,它是從數據庫生成的類。我怎樣才能將它放入模型類型TechProjPlanModel中,以便將它傳遞給視圖,或者我甚至需要這樣做? – Tevis 2014-10-30 14:58:18

+0

如果你需要額外的字段,那麼你可以創建新的ViewModel,否則你可以使用現有的模型 – 2014-10-30 15:26:04

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; } 
} 

添加DbSetContext類:(TechProjPlansContext在您的項目)

public class MovieDBContext : DbContext 
{ 
    public DbSet<Movie> Movies { get; set; } 
} 

確保你可以連接到數據庫服務器,檢查您的connectionStrings在您的Web.config文件。

當你想使用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(a movie)。並有一個View,呈現給客戶將看到的實際的HTML代碼。在其頂部,添加該行:

@model MvcMovie.Models.Movie // (something TechProjPlans.Models.Movie in your project) 

@Html.LabelFor(model => model.Title) 

這將創建一個顯示電影標題的簡單文本。

在答案中進行更深入的研究並不合邏輯,所以在本教程中休息取決於您。請記住,上面的代碼只是一個例子,您可以在每個級別中針對您的情況使用無窮無盡的變體。

您可以右鍵點擊目錄控制器,選擇添加新,並選擇您模式類,並在頁面語境類。這將產生一個控制器視圖(索引,編輯,刪除,細節,插入)綁定到它,這將是一個很好的方式來開始您的研究MVC研究。