在请求路径中维护所有页面而不是子域的参数信息

时间:2012-03-14 22:21:28

标签: asp.net-mvc url-routing friendly-url

我在这里寻求一些指导......(我不确定这是否是最佳标题)

目前我将“服务器名称”添加到网址中,如下所示:

server10.example.com

这很好用,除了我需要处理IIS上的所有子域名,我不确定google是否乐意从sub到sub跳转到sub,当它看起来像是到其他服务器的链接时。

我很希望有一个很好的方式来存档这个wioth asp.net mvc。

大多数页面都与“服务器”相关...但是有一些信息页面,联系人,家庭并不真正需要有效的“服务器”名称...但是可能只是“na”不可用,但是,如果已经有一个选定的服务器,则当用户不断浏览该站点时,需要维护该名称。当我需要创建指向不同页面的链接时,这需要尽可能透明。

我可以扩展Html Action()extensien以自动将所选的“服务器”从当前请求添加到页面。

格式:

/{serverParameter}/{controller}/{action}/{parameterInfo}

如果没有选择服务器,只需添加“na”作为{server}占位符。

我不确定是否需要更多信息,但如果......请告诉我。

我厌倦了从域部分中提取所选服务器,而另一种方式似乎也更好,我只是想不出一个很好的方法来构建这个......

更新

所有页面中有90%是关于用户在某个时刻选择的服务器。可能是server10,server9,server20 ......只是一个名字。我希望在用户选择它之后在所有页面上维护该信息,否则我只想让它成为f.ex:“empty”。

我主要是寻找一种简单的方法来做这个或替代...我正在将serverParamter添加到url中,因此它最终成为:“serverParameter.example.com”。

我希望最终得到像

这样的东西
http://example.com/{server}/{controller}/{action}

的实例
http://{server}.example.com/{controller}/{action}

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您只希望将不同的内容集合组合在控制器/操作级别之上。如果是这种情况,您是否考虑过使用ASP.NET MVC区域?

只需右键单击您的项目,然后选择添加 - >区域....给它命名(你称之为“服务器”),然后你可以添加内容,你自己的控制器,动作等。在这个区域。您将可以通过/ AreaName / Controller / Action / etc。

自动访问它

答案 1 :(得分:0)

我使用了ASP.NET MVC中已经被强制的路由。

{server}/{controller}/{action}

创建链接时,它会获取{server}的设置值并在生成URL时放置值,所以我只需要在@ Html.Action帮助方法中提供控制器和操作...这可能不会更多容易。

我不确定为什么我没有想到这一点。一个人只是喜欢路由。