如何在iis上發布網站,在IIS6上部署MVC2網站(續篇)

 2023-10-08 阅读 14 评论 0

摘要:根據上一篇所描述的方法去配置,在后來碰到了不少麻煩,主要的麻煩就是View中鏈接的問題。 為了適應本地調試,我配置了兩個路由規則: routes.MapRoute("Default.Mvc","{controller}.mvc/{action}/{value}",new { controller =

根據上一篇所描述的方法去配置,在后來碰到了不少麻煩,主要的麻煩就是View中鏈接的問題。

為了適應本地調試,我配置了兩個路由規則:

routes.MapRoute(
"Default.Mvc",
"{controller}.mvc/{action}/{value}",
new { controller = "users", action = "index", value = 1 }
);

routes.MapRoute(
"Default",
"{controller}/{action}/{value}",
new { controller = "users", action = "index", value = 1 }
);

這樣一來,“http://localhost:7078/users.mvc/index”和“http://localhost:7078/users/index”都可以正常顯示了。

如何在iis上發布網站。但是我發現當我用“http://localhost:7078/users/index”來訪問的時候,頁面上卻有這樣的鏈接:http://localhost:7078/users.mvc/Edit/user1

這并非我所期待的,我所期待的鏈接應該像這樣:http://localhost:7078/users/Edit/user1

而它卻也把“mvc”也帶上了,這十分令我迷惑,經過查閱資料,我才知道原來ActionLink生成鏈接也是有規則的,這里具體就不展開了,感興趣的話可以看看這篇博文:

http://www.cnblogs.com/P_Chou/archive/2010/11/08/details-asp-net-mvc-03.html

tomcat部署靜態html。總之我的做法有問題!


經過研究MVC路由規則,我修改了我的路由規則配置:

routes.MapRoute(
"Default.Mvc",
"{controller}.{mvcflag}/{action}/{value}",
new { controller = "users", action = "index", value = 1 },
new { mvcflag="mvc"}
);

routes.MapRoute(
"Default",
"{controller}/{action}/{value}",
new { controller = "users", action = "index", value = 1 }
);

把“mvc”作為一個參數,我想這樣在生成超鏈接的時候就應該沒什么問題了,可事實上這樣做也并沒有解決問題,因為我發現生成的鏈接中,如果Controller發生改變,參數就被忽略,像我這樣想“恒穩”地帶上mvc這個參數去生成鏈接是很難的了。比如我當前訪問頁是:http://localhost:7078/users.mvc/index/1

當前Controller是users,Action是index,會生成下面這些Link:

怎么將.net mvc程序部署,http://localhost:7078/users.mvc/index/2 (Controller和Action都沒變,mvc參數還是帶上的)

http://localhost:7078/users.mvc/Edit/user2?(Controller沒變,Action變了,貌似也會帶上mvc參數,還行)

http://localhost:7078/App?(Controller變了,mvc參數丟了)


想來想去終究沒有什么完美的辦法,看來還是得從IIS著手,后來發現居然相當簡單,唉,彎路走得夠多的了。上圖:

iis apache?

這樣一來就OK了,也不需要添加什么路由規則了。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/132948.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息