【问题标题】:How to migrate from ASP.NET Web Forms to ASP.NET Web Pages? i.e /default.aspx to /default如何从 ASP.NET Web 窗体迁移到 ASP.NET 网页?即 /default.aspx 到 /default
【发布时间】:2015-09-14 16:53:53
【问题描述】:

我设计了一个使用 ASP.NET Web 表单的网站。它包含像

这样的网页

default.aspx

about.aspx

contact.aspx

现在我正在将 WebForms 迁移到 WebPages (CSHTML)。所以现在,我的网页是这样的

/

/about

/contact

所以我的问题是,如何将访问/contact.aspx 的用户重定向到/contact 页面等等。有没有可能?

【问题讨论】:

  • 为什么是 MVC 标签?您是否正在尝试将 WebForms 项目转换为 MVC 项目?
  • 可能重定向到一个不相关的完整网址?
  • @ThufirHawat,带有 Razor 的 MVC。我还没有将项目创建为 MVC 或 WebPages.. 从头开始​​。
  • @AntoinePelletier,是的。
  • 那是Now I am migrating WebForms to WebPages 还是I have not created project as MVC or WebPages.. Started from scratch...?这是关于迁移到 MVC 还是关于设置路线的问题?如果后者是您尝试为 Web 表单或 MVC 设置路由?

标签: c# asp.net .net razor url-routing


【解决方案1】:

我设计了一个使用 ASP.NET 网络表单的网站。现在我正在迁移 WebForms 到 WebPages (CSHTML)。

如何将访问 /contact.aspx 的用户重定向到 /contact 页面

这是Route Engine的职责,你需要在Application_Start中指定你想如何路由。 Web 窗体和 MVC 不向后兼容。

我唯一的建议是,如果这是一个新项目,你想从新的 MVC 项目开始。然后将你在 Web Form 中所做的转换成 Controller、View 和 Model。

【讨论】:

    【解决方案2】:

    你应该看看RewriteModule

    然后像这样将 smth 添加到您的 web.config 中

    <system.webServer>
        <rewrite>
          <rules>
            <rule name="page.aspx">
              <match url="^default\.aspx$" />
              <action type="Redirect" url="" />
            </rule>
            <rule name="page.aspx">
              <match url="^(\w+)\.aspx$" />
              <action type="Redirect" url="{R:1}" />
            </rule>
            <!-- ... -->
    

    【讨论】:

    • 我会检查并告诉你。
    猜你喜欢
    • 2011-05-27
    • 2015-02-02
    • 2011-09-03
    • 2014-03-15
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    相关资源
    最近更新 更多