2009-05-08 21 views
1

IはLISTALL(と呼ばれる単一のメソッドを含むインタフェースを有する)C#ASP.Net MVCビュー号

using System.Collections.Generic; 
namespace MvcApplication1.Models 
{ 
public interface IMovieRepository 
{ 
IList<Movie> ListAll(); 
} 
} 

Iは、そのインターフェースを実装するクラスがあります

namespace MvcApplication1.Models 
{ 
public class MovieRepository : IMovieRepository 
{ 
private MovieDataContext _dataContext; 
public MovieRepository() 
{ 
_dataContext = new MovieDataContext(); 
} 
#region IMovieRepository Members 
public IList<Movie> ListAll() 
{ 
var movies = from m in _dataContext.Movies 
select m; 
return movies.ToList(); 
} 
#endregion 
} 

とコントローラこのリポジトリパターンを使用して、データベースからムービーのリストを返します。

namespace MvcApplication1.Controllers 
{ 
public class MoviesController : Controller 
{ 
private IMovieRepository _repository; 
public MoviesController() : this(new MovieRepository()) 
{ 
} 
public MoviesController(IMovieRepository repository) 
{ 
_repository = repository; 
} 
public ActionResult Index() 
{ 
return View(_repository.ListAll()); 
} 
} 
} 

私の質問は、どのようなコードですか私はこのデータを表示するために私の視点に置く必要がありますか? ASP.Net MVCビューでデータを表示するためにどのようなオプションがありますか?

大変助けになりました。

+0

(あなたのコメントからベンまで)あなたのインデックス機能を右クリックすると、ビューを追加するオプションが表示されます。 – Aaron

答えて

3

右ビューを追加し、あなたのコントローラーをクリックしてください...

  • はアクションと同じビューの名前にしてください。
  • チェックし、[X]強く型付けされたビュー
    • を作成するあなたのビューが作成され、あなたは、このことによって項目にアクセスすることができますタイプ]ボックスで

IEnumerable<Movie>を入れて:

<% foreach(var movie in Model) { %> 

.... 

<% } %> 
+0

コントローラを右クリックすると、残念ながらビューを追加するオプションはありませんか? – Goober

+1

MVCフレームワークのリリースを使用している場合は、IDEツールを使用してコントローラから直接ビューを追加する必要があります。そうでない場合は、インストーラを再実行することができます。 いずれの場合でも、私の指示に従うことができますが、手動でビューを構築してください。 –

1

IDEを使用してビューを作成するのは、開発のための速い方法ですが、ViewModelの仕組みを理解する必要があると思います。

ビューページを作成し、ページの先頭に、どのオブジェクトを表示するかをViewPageに指示します。表示する内容を強く入力しました。

 
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.Movie>" %> 

<% foreach (Movie m in ViewData.Model) { %> 
    <%= m.PropertName %> and other html 
<% } %> 

モデルの名前空間をWeb.configに追加することも覚えておいてください。これにより、MvcApplication1.Models.Movieの代わりに短いMovieを書き込むことができます。

 
<pages> 
    <namespaces> 
     <add namespace="MvcApplication1.Models" />