C # ASP.Net MVC Просмотр вопроса - PullRequest
1 голос
/ 09 мая 2009

У меня есть интерфейс, который содержит один метод с именем ListAll ()

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

У меня есть класс, который реализует этот интерфейс:

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 View?

Помощь с благодарностью.

Ответы [ 2 ]

3 голосов
/ 09 мая 2009

Щелкните правой кнопкой мыши по вашему контроллеру, Add View ...

  • Оставьте имя представления таким же, как и у действия.
  • Отметьте [X], чтобы создать строго типизированный вид
    • Поместите IEnumerable<Movie> в поле Тип

Ваш вид будет создан, и вы можете получить доступ к элементам, выполнив следующее:

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

....

<% } %>
1 голос
/ 09 мая 2009

Хотя использование IDE для создания представлений - это быстрый способ разработки, я думаю, вам необходимо понять, как работает модель представления.

Создайте страницу просмотра и в верхней части объявления страницы, которая сообщает ViewPage, какой объект ожидать. Теперь вы строго набрали свой View, чтобы понять, что он должен отображать

<%@ 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.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...