我只是在我的表單上輸入名稱和年齡並將其發佈到ListAll在我的家庭控制器中的操作。但是控制器並不記錄記錄輸入的所有名稱和年齡,即它不會持續它。該asp.net MVC控制器不會堅持我的內存數據庫
P.s.很抱歉的長碼,但其所有的非常基本的,不應該複雜的事情
這是我的index.html的代碼(在那裏我可以輸入一個人的姓名和年齡)
@using(Html.BeginForm())
{
@Html.ValidationSummary();
@Html.LabelFor(p=>p.Name)
@Html.EditorFor(p=>p.Name)
@Html.LabelFor(p=>p.Age)
@Html.EditorFor(p=>p.Age)
<input type="submit" value="Add" />
}
@Html.ActionLink("View All Person", "ListAll");
這是我的DbContext類,
public class TheDB: DbContext
{
public List<Person> persons = new List<Person>();
}
我個人類
public class Person
{
[Required]
public string Name { get; set; }
[Required]
public string Age{get;set;}
}
我控制器
public class HomeController : Controller
{
TheDB myDB ;
public HomeController()
{
myDB = new TheDB();
}
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(Person person)
{
//ignore model validation for now
myDB.persons.Add(person);
myDB.SaveChanges(); //update: adding this didn't work either
return View(person);
}
public ActionResult ListAll()
{
return View(myDB.persons.ToList());
}
最後這應該顯示所有人民ListAll.cshtml添加到內存數據庫,但它顯示了一個空白頁
@model IEnumerable<HtmlForms.Models.Person>
@using HtmlForms.Models
@foreach(var p in Model)
{
@p.Name;
@p.Age;
}
我缺少什麼?如果我手動添加兩個人對象IN ListAll方法並將其傳遞給視圖,它的工作原理。但上面的代碼沒有。
三江源
您是否在任何時候調用'SaveChanges'來將更改提交給數據庫? – CodingIntrigue
我剛更新了這個問題。我添加它按照你的建議和奇怪的,它仍然沒有工作:( –
你在哪裏存儲實例'TheDB'?如果只是'myDB = new TheDB();'這將初始化一個空白數據庫在每頁加載 - 你需要堅持它*在某處* – CodingIntrigue