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

Posted

技术标签:

【中文标题】在所有页面而不是子域的请求路径中维护参数信息【英文标题】:Maintain parameter info in the request path for all pages instead of the subdomain 【发布时间】:2012-03-31 10:57:57 【问题描述】:

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

目前我在 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"。

我主要是在寻找一种简单的方法或替代方法...... atm 我将 serverParamter 附加到 url 所以它最终是:“serverParameter.example.com”。

我想得到类似的东西

http://example.com/server/controller/action

插入

http://server.example.com/controller/action

【问题讨论】:

你找到答案了吗? 是的@DenNukem,请参阅下面我自己的答案。我也使用 T4MVC,因此在更改控制器的操作时会出现编译时错误。 这里描述了另一个答案:***.com/questions/9442494/… 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

我选择了 ASP.NET MVC 中已经实现的路由。

server/controller/action

在创建链接时,它采用 server 的设置值并在生成 URL 时放置该值,所以我只需要在 @Html.Action 辅助方法中提供控制器和操作......这再好不过了容易。

我不知道为什么我没有考虑到这一点。一个人一定会喜欢路由。

【讨论】:

嗯,这很奇怪,但是......所以在我的情况下,这条路线“controller/action/id”不会自动在末尾添加“id”,但是这个路由“controller/id/action”工作得很好,并且“id”确实被插入,而不必明确指定它。什么废话!

以上是关于在所有页面而不是子域的请求路径中维护参数信息的主要内容,如果未能解决你的问题,请参考以下文章

子域上的 Opencart 2.x 多商店维护模式页面

页面请求方式都有哪些?分别有啥区别

翻译--解密关键渲染路径

如何在 PHP 中识别请求的页面

使用 javascript JSON(而不是 ajax 请求)表征 HTML 页面

ajax主域和子域之间的跨域问题