2013-12-20 3 views
0

Я новичок в ASP.NET MVC. Мне нужно создать результат действия для отображения содержимого моего списка.Как добавить результат действия? mvc5

У меня есть следующий код в моем классе Movie.cs. Мне нужна помощь в создании результата действия. Мой код:

namespace MvcMovie.Models 
{ 
    public class Movie 
    { 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public DateTime ReleaseDate { get; set; } 
    public string Genre { get; set; } 
    public decimal Price { get; set; } 
    } 

public class MovieDBContext : DbContext 
{  
    public List<Movie> GetMoviesList() 
    { 

     List<Movie> lmovie = new List<Movie>(); 

     SqlConnection con = new SqlConnection("Data Source=dev01;Initial Catalog=Test;Integrated Security=True"); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("select * from Movies", con); 

     SqlDataReader dr = cmd.ExecuteReader(); 
     DataTable dt = new DataTable(); 
     dt.Load(dr); 
     con.Close(); 


     foreach (DataRow r in dt.Rows) 
     { 
      Movie mv = new Movie(); 
      mv.ID = Convert.ToInt32(r["ID"]); 
      mv.Title = r["Title"].ToString(); 
      mv.Price = Convert.ToInt32(r["Price"]); 
      mv.ReleaseDate = Convert.ToDateTime(r["ReleaseDate"]); 
      mv.Genre = r["Genre"].ToString(); 
      lmovie.Add(mv); 

     } 
     return lmovie; 
    } 

} 
} 

Это мой результат действия в MoviesController:

public ActionResult Index() 
{ 
    return View(-----); 
} 
+0

Попробуйте прочитать это, чтобы понять базу Asp.Net MVC -> http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started и дайте мне знать –

ответ

0

ваш DataContext создании экземпляра в контроллере и вернуть результаты на ваш взгляд, так что вы можете пойти и представлять их.

MoviesController:

public ActionResult Index(){ 
    var context = new MovieDBContext(); 
    var allMovies = context.GetMoviesList(); 
    return View(allMovies); 
    } 

поведение по умолчанию с видом на бритвенные включен: Это будет искать файл вида 'Index.cshtml' в/Views/папку Movies. Вы можете создать свой index.Cshtml с моделью List, чтобы вы могли использовать «Модель» в качестве итератора списка в своем представлении.

Но; пойдите и прочитайте любой начатый учебник о C#/MVC, который должен дать вам лучшее представление о том, что происходит. http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started

+0

Я пробовал код, и я получаю эта ошибка: Элемент модели, переданный в словарь, имеет тип «System.Collections.Generic.List'1 [MvcMovie.Models.Movie]», но для этого словаря требуется элемент модели типа «MvcMovie.Models.Movie» – Linkz

+0

Это означает, что ваше представление «Index.cshtml» ожидает другую модель (Movie), а не то, что он получил - список фильмов. –

+0

Спасибо, он отлично работал – Linkz

0
public ActionResult Index()  
{ 
    var dbContext = new MovieDBContext(); 
    var movieList= dbContext .GetMoviesList(); 
    return View(movieList); 
} 

Убедитесь, что ваш взгляд индекса (index.cshtml) сильно типизированных к коллекции Movie

@model List<MvcMovie.Models.Movie> 
@foreach(var item in Model) 
{ 
    <h2>@item.Title</h2> 
} 

Примечание: Вы наследуя DBContext класс для создания MovieDBContext, где у вас есть ваши GetMoviesList способ. Но в методе вы используете типичный код ADO.NET для получения данных. В этом случае вам даже не нужно наследовать свой класс от DBContext.

Если вы наследуете от DBContext, вы можете использовать инфраструктуру Entity для получения данных, не записывая все эти строки кодов. Окунитесь в учебник по инфраструктуре сущности в Интернете, чтобы узнать, как это работает.

Смежные вопросы