为什么模型,视图和控制器之间的交互看起来不同?

时间:2012-07-24 20:22:01

标签: asp.net-mvc

我是ASP.NET MVC的新手,试图学习基础知识。 我现在正在尝试学习模型,视图和控制器之间的关系。

这三者之间的相互作用看起来不同,为什么? (看看箭头)

来源1:MSDN

来源2(第65页):Steven Sanderson

如果你帮助我解决我的困惑,我会很高兴的

由于

编辑: 你说的是mvc可以用不同的方式实现吗? (仍然询问asp.net mvc - 一般不是mvc)

我一直在关注mvcmusicstore 它看起来像这样。 控制器:

public ActionResult Details(int id)
    {
        var album = storeDB.Albums.Find(id);
        return View(album);
    }

型号:

public class Album
{
    public int AlbumId { get; set; }
    public int GenreId { get; set; }
    public int ArtistId { get; set; }
    public string Title { get; set; }
    public decimal Price { get; set; }
    public string AlbumArtUrl { get; set; }

    public Genre Genre { get; set; }
    public Artist Artist { get; set; }
}

视图: (不得不添加为图像,正常方式添加代码不起作用) The view

这看起来像MSDN版本,如何重写以适应Sandersons图表? 也许这会帮助我理解!

再次编辑:

嗨再次

让我总结一下。如果我错了,请回复。 Microsoft希望我们使用mvc的方式是我们在上面的MSDN链接和MusicStore中看到的方式。 还有其他"版本"像桑德森这样的mvc(或者来自它的)。 因此,微软为我们提供了如何使用mvc框架的基本方法,但是可以通过其他方式实现。

新手不应该因为看到不同的版本而受到压力,坚持使用MSDN / MusicStore中看到的版本完全没问题。

2 个答案:

答案 0 :(得分:1)

我认为区别在于,在asp.net MVC中,您可以拥有强类型视图,这些视图具有模型的“知识”以及传递给视图的实体。在最纯粹的意义上,虽然View不应该(或者更确切地说,不需要)对模型有任何了解。因此我说Steven Sandersons的例子更好。

他的神奇书籍!

答案 1 :(得分:0)

我不会出汗 - 斯蒂芬桑德森的图表显示的周期较少,但更详细。

我将MS文章箭头解释为:

  • Controller填充模型(来自服务等)
  • Controller指示查看
  • 视图通过绑定模型填充

虽然在我看来,微软图并不是真正有用或有用或有用的。你可以同样争辩说,箭可以朝着不同的方向发展 - 甚至可以像Sanderson那样向两个方向发展。例如。控制器还从绑定等接收模型

桑德森的箭头注释得很好并且是自我表达的,这本书很棒。