2012-11-29 27 views
3

我相信MVC支持基于类型和/或分辨率的浏览器嗅探和切换视图。在关于开始一个新项目与Webforms或MVC(4.0版)之间正在进行的关于我们团队的辩论中,Webforms是否有这种支持?如果没有,我们会只使用CSS媒体标签和Twitter Bootstrapper来提供灵活的布局?我们的一些应用程序针对固定显示器,但其他部分应该是平板电脑和手机。我想知道如果我们使用WebForms,以后会不会更困难。移动和jQuery如何友好是WebForms(vs MVC)4.0版?

此外,MVC让你完全控制标记,所以非常适合jQuery。鉴于我们无法像使用服务器控件那样控制标记,WebForms jQuery是否友好?

像这样的其他问题我没有想到这可能会有所作为?

回答

2

更新版本的ASP.NET webforms(尤其是4.0以上版本)对于基于访问该网站的特定设备提供内容更加“友好”,以及具有允许更“干净”地输出由服务器端控件生成的渲染标记。

当然,这也是MVC的真实,但不要忘记,ASP.NET MVC is written on top of the same ASP.NET runtime that ASP.NET Webforms uses。正因为如此,通过MVC最初公开的许多好处现在也可用于Webforms。

有微软的ASP.NET siteHow To: Add Mobile Pages to Your ASP.NET Web Forms/MVC Application一个很好的白皮书,里面详细介绍了功能,如Request.Browser.IsMobileDevice & Request.Browser.ScreenPixelsWidth(包括基本的底层ASP.NET运行时,因此同样适用于Web窗体& MVC的功能)如何使用检测当前访问该网站的设备的功能。如果您需要非常详细的设备信息,则无论您使用的是WebForms还是MVC,都需要将WURFL等内容整合到您的网站中。此外,如果您需要在具有不同外观因素和纵横比的设备上进行非常具体的布局,则需要提供专门设计并以这些设备为目标的页面(MVC视图或ASP.NET网页)。

关于将ASP.NET WebForms干净地使用jQuery的能力,自ASP.NET WebForms 4.0开始,您就有能力严格控制应用于呈现标记中的DOM元素的ClientID值。有一个名为ClientIDMode的新属性,makes itvery easy可确保您具有元素ID的已知值,从而可以更轻松地使用jQuery。将ClientIDMode的值设置为staticpredictable值中的任一值都会为您的元素提供ID值,这些元素在jQuery中使用起来要容易得多。但是,这里需要注意的一点是,由于ASP.NET Runtime仍然生成HTML元素并为其ID分配值you can still end up with duplicated ID values,特别是在使用复合控件(即控件(如自己拥有的控件)时) ID值,但它本身由许多组成控件/元素组成 - 当然每个元素都有自己的ID)。总体而言,ASP.NET WebForms和ASP.NET MVC之间的选择可能会归结为您最舒适和高效的方式。就个人而言,我会使用MVC,因为我喜欢它的可测试性以及更好地将关注点分离到WebForms的其他好处,尽管必须说ASP.NET WebForms 4.0+版比以前的版本更强大并且有很大改进 - 您甚至可以现在有ASP.NET WebForms的MVC-style routing, extensionless URL's and more