最近自已学习了asp.net mvc,以前上学是有学过,那时候都没有怎么去用,现在花了一二天时间搞了下,总结下遇到的问题:
1添加母版页时要注意:
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
这个 ID是我遇到并搞了许久的东东,在添加view时引用不了母版页,原来是ID的原因,要引用哪个母版页时,ID一定要匹配.
2、多级目录时路由的问题。其实这个不是路由的问题,完全不用理它,中要在 Controller 中的action的返回参数中设置:
如下:
public ActionResult Index()
{
return View("~/Views/MVC/Index.aspx");//返回指定的目录层级,可多目录嵌套
}
3、发布后IIS的配置
IIS 7.0
直接创建WebSite就可以了
可能出现500.19错误,原因是先安装了vs,后安装iis
解决方案: cmd导航到C:\Windows\System32\inetsrv
运行appcmd unlock config -section:system.webServer/handlers
如果没有权限就到该目录config文件夹下分配一下权限。
IIS 6.0
如果服务器上没有安装asp.net mvc 1.0, 则需要在mvc app项目中将System.Web.Mvc、System.Web.Routing、System.Web.Abstractions三个dll的copy local属性设为true。这三个dll需要和项目dll一起发布。
部署到IIS6.0有两种方法
1,添加扩展名
在项目Global.asax文件中更改路由方式(添加.mvc扩展名)
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = ""
};
在iis中添加.mvc映射和WildCard Application Maps
iis站点-->属性--->主目录-->配置-->映射-->插入
找到c:\windows\microsoft.net\Framework\v2.0....\aspnet_isapi.dll, 取消 "确认文件是否存在" (不要选中),--> 确定
最后得以在IIS下面运行
(-:-:)