我是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; }
}
视图: (不得不添加为图像,正常方式添加代码不起作用)
这看起来像MSDN版本,如何重写以适应Sandersons图表? 也许这会帮助我理解!
再次编辑:
嗨再次
让我总结一下。如果我错了,请回复。 Microsoft希望我们使用mvc的方式是我们在上面的MSDN链接和MusicStore中看到的方式。 还有其他"版本"像桑德森这样的mvc(或者来自它的)。 因此,微软为我们提供了如何使用mvc框架的基本方法,但是可以通过其他方式实现。
新手不应该因为看到不同的版本而受到压力,坚持使用MSDN / MusicStore中看到的版本完全没问题。
答案 0 :(得分:1)
我认为区别在于,在asp.net MVC中,您可以拥有强类型视图,这些视图具有模型的“知识”以及传递给视图的实体。在最纯粹的意义上,虽然View不应该(或者更确切地说,不需要)对模型有任何了解。因此我说Steven Sandersons的例子更好。
他的神奇书籍!
答案 1 :(得分:0)
我不会出汗 - 斯蒂芬桑德森的图表显示的周期较少,但更详细。
我将MS文章箭头解释为:
虽然在我看来,微软图并不是真正有用或有用或有用的。你可以同样争辩说,箭可以朝着不同的方向发展 - 甚至可以像Sanderson那样向两个方向发展。例如。控制器还从绑定等接收模型
桑德森的箭头注释得很好并且是自我表达的,这本书很棒。