最近自已學習了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下面運行
(-:-:)