我目前正在研究一个MVC 3 Web应用程序项目,在那里我需要在头版上显示很多信息。我是相对较新的网页布局和设计,所以我遇到了墙,在如何构造代码背后的这一页。
我的第一个想法是把页面(视图)分割成尽可能多的页面(小视图),这样视图模型就更小、更容易管理。虽然我不确定这是否是正确的做法。或者,我是否应该尝试将页面的所有需求整合到一个视图中,以显示我所需要的所有信息?
发布于 2014-05-30 13:59:53
将一个大视图对象拆分为更小的视图,主要是可重用性、可测试性,以及两个月后您不必(不可避免地)这样做,您将获得许多好处。
首先,使用较小的视图将使您能够在项目的其他部分重用这些视图(如果有必要的话,应该有一个“如果需要”,但您很有可能重用这些视图)。使用单一视图没有提供这样的灵活性。
更小的视图也更容易概念化(一个简洁、正确命名的视图将节省您阅读其100行的时间)、维护(您可以隔离bug,并在不影响其他视图的情况下对每个视图进行功能更改)和测试(在时间、复杂性和依赖性注入方面)。
使用单一的、巨大的视图(嗯,也许几分钟的开发)并不能获得任何好处,然而,在长(短)的时间里,您错过的是大量的东西。
要在MVC3中使用几个较小的视图,可以在主视图中使用部分视图,
<div>
@Html.Partial("_PartialView", new PartialViewModel)
</div>
发布于 2014-08-01 17:19:58
是的,将一个大视图分割成部分视图可能是积极的,即使您确实知道部分视图不会被重用。如果您的大视图在概念上被划分为几个部分,那么对视图进行相应的划分是有意义的。在包含大量嵌套div标记的大型视图文件中,这些部分可能并不明显。当然,找到正确的平衡。每个div标记的部分视图将是过度的。:)
@{
Layout = "~/Views/Shared/_Layout.cshtml"
}
<div id="page">
@Html.Partial("Top")
@Html.Partial("Middle")
@Html.Partial("Bottom")
</div>
发布于 2014-05-30 13:41:10
这得到了“看情况而定”的好答案:)
如果头版的不同部分可以在其他地方使用,那么将其分成几个逻辑上的部分视图是有意义的。但是,如果没有,就没有理由把这一切都搞砸了。您应该简单地构建一个设计良好的视图模型。
如果不知道更多的细节,也许就像这个非常粗糙的例子:
public class FrontPageViewModel
{
public Section1Model section1 { get; set; }
public Section2Model section2 { get; set; }
public Section3Model section3 { get; set; }
public Section4Model section4 { get; set; }
}
..。其中,您的节模型是用逻辑属性构建的。
public class Section1Model
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
public class Section2Model
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property4 { get; set; }
public string Property5 { get; set; }
}
// etc.
在你看来,你可以这样做:
<div id="section1Content">
@Html.DisplayFor(m => m.section1)
</div>
<div id="section2Content">
@Html.DisplayFor(m => m.section2)
</div>
<!-- etc. -->
https://stackoverflow.com/questions/23955248
复制相似问题