【问题标题】:Managing page paths in ASP .NET application在 ASP .NET 应用程序中管理页面路径
【发布时间】:2012-05-23 08:41:49
【问题描述】:

目前在我的网络应用程序中,我有很多这样的行:

            Response.Redirect("~/Default.aspx");

等等。现在,我正在重新组织 aspx 页面结构,因为它非常扁平 - 一切都在一个文件夹中。所以我必须彻底搜索所有代码才能修复 aspx 路径。所以我的问题是:有没有办法在 ASP .NET 中管理/组织网站页面结构 - 某种 SiteMap,所以我有一个类似于:

            Response.Redirect(Pages.Default);

这样我的代码将在文件夹之间移动某些 aspx 页面的修改时关闭?

【问题讨论】:

标签: asp.net


【解决方案1】:

我写了一个开源项目,可以帮助你,http://navigation.codeplex.com/

您在配置文件中列出您的页面和转换。这是一个例子:

<state key="Page1" page="~/Page1.aspx">
    <transition key="Next" to="Page2"/>
</state>
<state key="Page2" page="~/Page2.aspx"/>

然后在您的代码中,您可以像这样从 Page1.aspx 移动到 Page2.aspx:

StateController.Navigate("Next");

如果您有兴趣或需要任何帮助,请告诉我。

【讨论】:

    【解决方案2】:

    我认为没有任何自动解决方案,您最终可能会自己构建一些东西。您可能想查看 Asp.Net Sitemap 的内容,尽管它主要关注导航控件。

    http://msdn.microsoft.com/en-us/library/yy2ykkab.aspx

    我在几个项目中遇到了与您相同的问题。一种简单的解决方案是创建常量/静态/枚举来表示页面名称/url:

    public static class SiteMap {
        public static readonly string Default = "/default.aspx";
    }
    

    这当然可以让你做

    Response.Redirect(SiteMap.Default);
    

    但由于页面需要传入参数,这很快就过时了,迟早你会遇到与参数名称完全相同的问题。所以我们通过添加一个像

    这样的 Url 工厂类来扩展这个想法
    public static class SiteMap {
        public static readonly string Article = "/blog/article.aspx";
    }
    
    public static class PageParams {
        public static readonly string ArticleId = "aid";
    }
    
    public static class UrlFactory {
        public static string GetUrlBlogArticle(int articleId){
            return string.Format("/{0}?{1}={2}",SiteMap.Article, PageParams.ArticleId, articleId.ToString());
        }
    }
    

    这种方法可确保所有链接以相同的方式工作并包含相同的参数。通过设置 PageParams 常量类,登录页面/控件代码也更简洁一些,因为您可以这样做

    public void method(){
        var articleId = Request[PageParams.ArticleId];
    }
    

    而不是到处都有随机的请求参数名称。

    希望能给你一些想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-25
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多