刚把项目升级到2012,发现发生了很多变化,以下是最近看过的网站和资料汇集,供需要者参考。
本文在最近一个月可能会不断更新。
Razor2.0
新特性介绍:
取消了@Href和@Url.Content;可以使用conditional attribute了(就是class = ""等将不会显示)
空单元(void Eliment);新的syntax tree;
WebPage2.0
新特性介绍:
包含详细的如何通过Google/Yahoo/Faceboock用户登录站点(OAuth和OpenID支持)
MVC3到MVC4升级中遇到的问题汇总
登录机制换了,和用户相关的操作会出现一些错误
现在是SimpleMembership了,也就是每个用户有1个ID,一个用户名是必备的,其他的都可以自定义(系统帮助定义了一些)。
注意MVC4会生成一个新的aspnet.db,结构于原来的不同。web.config中需要做相应的修改。
其他大致可能引发的问题包括:
1. 所有使用Membership和其他早期身份认证操作的地方都会有问题
但它不会说是Membership的问题,而是说“aspnetdb文件找不到”或“xxlog.mdf与Xx不匹配”之类的。
现在要获取所有用户,请用:
var users = new UsersContext().UserProfiles.ToList();
删除则是:
userContext.UserProfiles.Remove(user);
userContext.SaveChanges();
这个UsersContext(在新建的MVC4项目中,它会自动出现在一个叫做AccountModels.cs的文件中;如果是升级的项目,可以新建一个MVC4项目然后拷贝过来)。据称他除了能在本地数据库中存储用户信息外,还可可以接受OpenID等外网的用户。有点像“用QQ号登陆”。
2. 所有[Authorize[Roles="XXX"]的地方会出错。
比如这个:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
这是因为他还在尝试到旧的aspnetdb中找Role。
这时候,请到一个~\Filters\InitializeSimpleMembershipAttribute.cs文件中,找这句话:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
并把它挪到(此语句只能调用一次,故需要挪动,或注释掉):
~\Global.asax.cs中尽早调用,比如:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
AuthConfig.RegisterAuth();
...
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
另外在一个叫做
FilterConfig.cs文件中,请加上第二句话:
Razor的一些小改动
site.css大规模改动
如果发现网站的文字、表格变化了,是因为缺省的site.css变了。
比如现在表格都变成没有格子线条的了。
@this.XXX不支持
错误:@this.InitLayout(xxx) //自己写的一个Helper,现在出错。
正确:@(this.InitLayout(xxx) )
Layout方案的变化
现在所有的页面都缺省使用~/_ViewStart.cshtml(无需调用,自动运行),其中只有一句话:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
_Layout自动其提供的整体布局、色调、图片,很多在site.css中(比如有两处使用了background,整个页面上边黑色边缘则是border: 10px #000形成的)。
如果想沿用原来自己的Layout,可以删除这句话,就会继续调用原来的Layout了。
如果是新建的MVC4项目,可通过修改_Layout.cshtml文件形成自己的Layout。
某些页面或页面的局部突然不显示
就是上面的Layout机制变化造成的。
如果没有删除上面~/_ViewStart.cshtml中
Layout = "~/Views/Shared/_Layout.cshtml";
这句话,在任何其他地方设置Layout可能会导致错误,但不报错!只是从此处以后的内容不再显示。
比如如果在你自己的View再写:
Layout = "~/Views/Shared/_Layout.cshtml";
就会出错。这似乎表明,Layout只能设置一次了,第二次会出错。。
所以,要么删除_ViewStart那次,要么自己不要再设置了。我选择了前者,因为我们做了一些复杂的设置工作。asp.net的本意是说可以在_ViewStart.cshtml中进行编程,确认到底用哪个Layout。
LocalDB数据库升级
SQL Server Express2008的数据库可能不支持了
有两种出路,一种升级到SSCE4.0(需要数据迁移,限制4G),一种升级到SSE2012(VS可以帮你自动升级,限制10G)。
升级过程如下(在VS2012里边完成的):
InServer Explorer, choose theConnect to Databasebutton.
-
In theAdd Connectiondialog box, specify the following information:
Data Source:Microsoft SQL Server (SqlClient)
Server Name:(LocalDB)\v11.0
Attach a database file:Path, wherePathis the physical path of the primary .mdf file.
Logical Name:Name, whereNameis the name that you want to use with the file.
Choose theOKbutton.
When prompted, choose theYesbutton to upgrade the file.
如果不行,请参考原文:
http://msdn.microsoft.com/en-us/library/hh873188.aspx
我选了后者,因为没找到数据迁移的自动工具,如果有,欢迎回复,谢谢:)
分享到:
相关推荐
asp mvc3 webpage css jquery webs
4,打开网站后台: http://localhost/admin 用户名密码都是:admin 模版修改请在template文件夹内修改.此文件夹里是存放网站模版的位置. 具体使用方法: template/ 文件夹里面有skin1,skin2,等... 文件夹,这里每个...
它被称为“ Razor Generator”(不要与“用于MVC的Razor单个文件生成器”混淆)。 发电机类型 MvcHelper :创建最适合编写特定于Mvc的帮助器方法的静态类型。 MvcView :创建一个WebViewPage,允许使用预编译的MVC...
style jquery mvc2 intake webpage
webpage企业自由建站系统.net v3.0 免费版 程序语言:ACCESS asp.net2.0 1,把文件放在网站根目录下. 2,保证upfile文件夹有写入图片权限,App_Data文件夹有写入图片权限,template文件夹有写入权限.其它可以只读. ...
WebPage.rar WebPage.cpp
MFC调用JS的WebPage公用类,亲试可以用哦,不坑人!来下载吧!
exifshow webpage tools
c++开发百度地图api时所需的WebPage.h和WebPage.cpp文件,下载解压导入项目即可。
Webpage-Screenshot_v14.5.1.crx
NULL 博文链接:https://tianjun309.iteye.com/blog/800685
test webpage selenium webdriver
WebPage是轻量级的、基于组件的、可视化的Web层开发框架。WebPage开放组件设计接口,可以自由开发能在WebPage中使用的组件,而且... WebPage基于MVC模式,重点解决View的部分,达到可以可视化开发和最大限度的复用。
Study of webpage Study of webpageStudy of webpage
Java Web包Webpagepackage family.yin.senqi
程序语言:ACCESS+asp.net2.0(有SQL版的,可与作者联系,300元购买) 1,把文件放在网站根目录下. 2,保证upfile文件夹有写入图片权限,App_Data文件夹有写入图片权限,template文件夹有写入权限.其它可以只读. 3,把IIS设置...
css html webpage master js twitter
skyeye_webpage.apk
外国页面大气、简约 使用photoshop打开 ps制作成的网页
首先是利用css实现了模块布局,下拉菜单等等。 其次利用jQuery实现div的动画效果,提高用户体验。