【问题标题】:C# ASP.Net MVC View IssueC# ASP.Net MVC 视图问题
【发布时间】:2009-05-08 20:57:12
【问题描述】:

我有一个接口,其中包含一个名为 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 视图中显示数据的选项有哪些?

非常感谢您的帮助。

【问题讨论】:

  • (来自您对本的评论)在您的索引函数内右键单击,您将获得添加视图的选项。

标签: asp.net-mvc model-view-controller


【解决方案1】:

右键单击您的控制器,添加视图...

  • 保持视图名称与操作相同。
  • 勾选 [X] 创建强类型视图
    • 在类型框中输入IEnumerable&lt;Movie&gt;

您的视图将被创建,您可以通过以下操作访问项目:

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

....

<% } %>

【讨论】:

  • 不幸的是,右键单击控制器没有给我添加视图的选项?
  • 如果您使用的是 MVC 框架的发行版,您应该使用 IDE 工具直接从控制器添加视图。如果没有,您可能需要重新运行安装程序。在任何情况下,您都可以按照我的说明手动构建视图。
【解决方案2】:

虽然使用 IDE 创建视图是一种快速的开发方式,但我认为您需要了解 ViewModel 的工作原理。

创建您的视图页面,并在页面声明的顶部告诉 ViewPage 期望什么对象。现在你已经强输入了你的 View 来理解它应该显示什么

" %> 等html

还要记住将模型的命名空间添加到 web.config。这使您可以编写短片而不是 MvcApplication1.Models.Movie。

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多