首页 新闻 会员 周边 捐助

MVC路由配置成类似微博、博客园那种个性域名解决方案

0
悬赏园豆:30 [已解决问题] 解决于 2015-10-02 18:20

MVC路由配置成类似微博、博客园那种个性域名解决方案

weibo.com/username/其他参数

cnblogs.com/username/其他参数

主机头/地区or用户名/其他参数

wuball的主页 wuball | 初学一级 | 园豆:20
提问于:2015-10-02 12:49
< >
分享
最佳答案
0

園裡沒有"cnblogs.com/username/"的route吧..

這個"cnblogs.com/u/username/"的話

不就是預設的route

收获园豆:30
RosonJ | 老鸟四级 |园豆:4910 | 2015-10-02 13:59

http://www.cnblogs.com/wuball/

http://www.cnblogs.com/wuball/p/4231343.html

有啊。。

wuball | 园豆:20 (初学一级) | 2015-10-02 14:19

@wuball: 

http://www.cnblogs.com/wuball/

routes.MapRoute(
  name: "userpage",
  url: "/{userid}",
  defaults: new { controller = "XXX", action = "user", userid = UrlParameter.Optional }
);

 

http://www.cnblogs.com/wuball/p/4231343.html

routes.MapRoute(
  name: "article",
  url: "{userid}/{action}/{articleid}.html",
  defaults: new { controller = "XXX", action = "article", userid = UrlParameter.Optional, articleid = UrlParameter.Optional }
);

 

我只是就URL寫route

園子一定有更完整的規劃,不可能跟我寫的一樣

另外還有順序的問題

RosonJ | 园豆:4910 (老鸟四级) | 2015-10-02 14:43

@RosonJ: 

这样控制器的代码和action是怎样的?userid怎么传参

wuball | 园豆:20 (初学一级) | 2015-10-02 14:51

@wuball: 

userid那個其實跟default很類似

看一下default:

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

預設的Action:

public ActionResult Index(string id)
{
  //...
}

其實可以想得出來如何傳參數吧

剩下就是撈取資料跟選擇view而已

RosonJ | 园豆:4910 (老鸟四级) | 2015-10-02 14:56

@RosonJ: 

那加个userid的话每个action就要加个userid参数了,不知道理解的对不对。。谢谢你

wuball | 园豆:20 (初学一级) | 2015-10-02 14:58

@wuball: 

那加个userid的话每个action就要加个userid参数了

有個小錯誤,Route結果只對應到一個Action,

defaults: new { controller = "XXX", action = "user", userid = UrlParameter.Optional }

預設也寫死了user(...沒寫好,應該大寫開頭)這個Action,

怎麼會有多個Action呢

RosonJ | 园豆:4910 (老鸟四级) | 2015-10-02 15:02
其他回答(1)
0

直接在web.config中的appSettings中配置一个节点就是了,在控制器中用ConfigurationManager.AppSettings[""]获取到,然后拼接

 

不知道是不是你想的那种

如此低调的男人 | 园豆:842 (小虾三级) | 2015-10-02 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册