我正在創建一個具有People和Notes表的簡單MVC應用程序。ASP.net MVC在一個視圖中顯示來自兩個表的結果
使用存儲庫方法和LINQ to SQL來訪問數據。
每個人都有一個單一的筆記一天,該筆記有一個CreatedAt。註釋表中的外鍵爲PersonID。
我已經設法使得CRUD能夠爲Person和Note單獨工作,但是我希望能夠在我的視圖中顯示單個人一天的註釋。
在我的資源庫中,我創建了一個我認爲應該可以工作的幫助程序,但是我不知道如何在控制器中使用它。
public IQueryable<Note> FindSinglePersonsNote(int id)
{
return from Note in db.Notes
where Note.CreatedAt > DateTime.Now.AddDays(-1)
&& Note.PersonId == id
select Note;
}
我想什麼發生的是,當我點擊詳情鏈接的人,展現人的姓名和聯繫到此人今天的說明。
任何幫助,將不勝感激。
乾杯
湯姆
更新:
我覺得我越來越近......
我一個人控制器現在看起來像這樣
public ViewResult PersonNote(int personId)
{
var personNote = new PersonNoteViewModel
{
person = scrumRepository.GetPerson(personId),
note = scrumRepository.GetNote(personId)
};
return View(personNote);
}
我創造了一個新的觀點所謂PersonNote
並試圖訪問值,像這樣:
<%= Model.person.PersonName %>
<%= Model.note.Issues %>
我的回購協議是這樣的:
public Note GetNote(int id)
{
return db.Notes.SingleOrDefault(d => d.PersonId == id);
}
public Person GetPerson(int id)
{
return db.Persons.SingleOrDefault(d => d.PersonId == id);
}
但我發現了一個很奇怪的錯誤,當我嘗試查看這一頁。
參數字典中包含'ScramApp.Controllers.PersonController'中方法'System.Web.Mvc.ViewResult PersonNote(Int32)'的非空類型'System.Int32'的參數'personId'的空項。可選參數必須是引用類型,可爲空類型,或者聲明爲可選參數。 參數名:參數
此錯誤表示您沒有在URL中指定personID,或者路由沒有選取personID參數。確保你看看[NerdDinner教程](http://nerddinnerbook.s3.amazonaws.com/Intro.htm);它包含這些東西的原型代碼。 – 2010-07-22 21:25:46
指定了personId,但它不喜歡我的控制器中使用的(personID)。 我把它切換到(id),事情變得更好。 它現在顯示一個人名和他們的筆記(只要我每個人只有一個筆記就在我的數據庫中) 非常感謝你的幫助,明天你會成爲一名救生員! – 2010-07-22 21:34:22
您的歡迎,我編輯了我的回答,以更好地跟蹤id。* FYI:* id的工作原理是因爲它在您的*默認*路線中 – 2010-07-22 21:38:09