asp.net mvc如何集中管理网址/链接和路由(c#+ js)

时间:2011-01-19 06:28:01

标签: asp.net asp.net-mvc

我一直遇到网址和路由问题 无法在SO上找到答案 我想在一个地方管理我的所有网址/链接。

这是我的C#MVC代码和js / jquery ajax代码。

这些网址分散在我的申请中 迁移到生产服务器需要一些修复,我不喜欢我需要查找应用程序中的所有事件。
我不介意修一次 - 但我只想做一次。

任何有关如何管理所有这些链接/网址的想法都将非常受欢迎。

快乐的广告享受生活,朱利安

3 个答案:

答案 0 :(得分:0)

取决于,如果您有应用程序读取某些网址,并且这些网址偶尔会更改。那么您可能需要考虑将所有这些URL放入数据库表/ etc并使用特定密钥检索它们。

这样,当您的网址发生变化时,您只需要更改数据库中的网址,所有应用程序仍然可以正常运行。

答案 1 :(得分:0)

应该在一个地方管理网址:RegisterRoutes中的Global.asax静态方法。在应用程序的绝对所有其他部分中,您应该在处理/生成URL时使用Html帮助程序。这样您就不会遇到问题,因为帮助者会考虑您的路由系统。

所以不要写:

$('#foo').click(function() {
    $('#result').load('/mycontroller/myaction');
    return false;
});

使用HTML帮助程序生成此foo:

<%: Html.Action("foo", "myaction", "mycontroller") %>

然后:

$('#foo').click(function() {
    $('#result').load(this.href);
    return false;
});

永远不要在您的应用程序中对单个网址进行硬编码,当然除了global.asax之外,global.asax是唯一应该定义的集中位置网址。所以基本上每当你发现自己在global.asax以外的其他部分写出/foo/bar形式的东西时,你做错了。

答案 2 :(得分:0)

考虑使用T4MVC

您可以使用Html.ActionLink或 Html.BuildUrlFromExpression(c =&gt; c.ControllerAction())