MVC3を学び始めたばかりです。しばらくの間、従来の ASP.NET でコーディングを行ってきましたが、現在は MVC に移行したいと考えています。
私が理解していないいくつかのこと(おそらく、従来のASP.NETとは異なる方法で使用されているだけです)
ニュースを表示し、コメントを挿入できる単純なニュース モジュールを作成しようとしています。
最初のステップは、SQL サーバーにテーブルを作成することです: TblNews TblCategories TblComments
ModelsフォルダーにLinq2SQLデータクラスを作成し、News.dbmlという名前を付けましたコントローラーHomeController.csを作成し、その中にIndex()というメソッドを作成しました。こんな風に見える:
public ActionResult Index()
{
Models.NewsDataContext db = new Models.NewsDataContext();
var Model = (from n in db.TblNews
select new
{
ID = n.ID,
Title = n.Title,
Description = n.Description,
Category = n.TblCategory.CategoryName
});
return View(Model);
}
ご覧のとおり、すべてのニュースとそのカテゴリ名を選択しようとしています (TblNews と TblCategories の間には関係があります)。
その後、クエリから取得したデータを返します。
ビューには次のものがあります。
@{
ViewBag.Title = "News Index Page";
}
<table>
@foreach (var item in Model)
{
<tr>
<td>
ID: @item.ID<br />
Title: @item.Title<br />
Description: @item.Description<br />
Category: @item.Category
</td>
</tr>
}
</table>
次のようなものが返されます。
ID: 4
Title: asd
Description: asd
Category: 2
それがテーブルからの私のサンプルデータです。
ページを実行すると、エラー メッセージが表示されます。
'object' does not contain a definition for 'ID'
しかし、マウスを「アイテム」変数にフォーカスすると、実際には次のものが含まれます。
{ ID = 4, Title = asd, Description = asd, Category = Test2 }
また、末尾に .ToList() を追加して、Linq Query をリストとして返そうとしました。
誰かが私にヒントを与えて、正しい方向に導くことができますか?
私が何か間違って説明した場合は申し訳ありません。英語は私の第一言語ではありません。さらに情報が必要な場合はお尋ねください。
どうもありがとうございました。
PS私はVisual Studio 2012を使用しています