1

我是 ASP.NET 的新手,我首先使用 razor 语法在 WebMatrix 中学习。

在 PHP 中,我使用 .htaccess 将 URL 路由到数据库帖子,例如:

http://mywebsite.com/linux/how-to-install-wamp-in-ubuntu-12.04

在这种情况下,路径文件:

http://mywebsite.com/routes.php?title=how-to-install-wamp-in-ubuntu-12.04

我正在尝试像 PHP 示例一样进行路由:

http://mywebsite.com/routes.cshtml?title=how-to-install-wamp-in-ubuntu-12.04

我可以在 ASP.NET 中使用 WebMatrix 和 razor 执行此操作吗?

我知道如何在 ASP.NET 中获取 GET 数据,但我不明白如何创建友好的 URL 以及在找不到页面时如何路由到“routes.cshtml”。

4

3 回答 3

4

有一个专门用于 ASP.NET 网页的现有程序包,可让您做您想做的事情,并且可以通过 WebMatrix 程序包管理器获得。它被称为网页路由。我写了一篇关于如何使用它的文章:http: //www.mikesdotnetting.com/Article/187/More-Flexible-Routing-For-ASP.NET-Web-Pages

于 2012-10-18T06:27:31.013 回答
3

详细信息: Microsoft 现在通过 Nuget 包使 ASP.NET 的实现变得非常容易。不幸的是,这个包“Microsoft.AspNet.FriendlyUrls”目前处于预发布版本中,WebMatrix 不允许您下载预发布版本。因此,与只有 Visual Studio 或 VS Express 相比,按照我的方式进行操作可能并不容易。

我的建议是下载Visual Studio Express 2012并将其用于开发或仅使用它,以便获得 Nuget 包。

我假设您想在 WebMatrix 中进行开发。

解决方案:

  1. 下载并安装 Visual Studio Express 2012。
  2. 创建一个新网站
  3. 在解决方案资源管理器中,右键单击您的网站并选择“管理 Nuget 包..”
  4. 按“仅稳定版”下拉菜单并选择“包括售前赛”
  5. 在搜索框中输入“Microsoft.AspNet.FriendlyUrls”
  6. 选择“安装”
  7. 在 Windows 资源管理器中打开您的项目,以便查看所有文件。
  8. 将文件夹“App_Code”和“bin”复制到您的 WebMatrix 项目中(例如,将它们添加到您的解决方案中)。
  9. 添加一个全局应用程序类“Global.asax”
  10. 在 Application_Start 方法中添加以下行

    RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);

  11. 您现在将拥有 FriendlyURL

我知道这似乎需要做很多工作,但如果你有 Visual Studio 或 WebMatrix 允许预发布,那么它会很容易理解。

警告:如果您决定在 Visual Studio 中开发它,请删除以下文件,因为它的移动部分目前不起作用(因此它是预发布版)

  • Site.Mobile.Master
  • LiSite.Mobile.Master.designer.cs
  • ViewSwitcher.ascx
  • ViewSwitcher.ascx.designer.cs

未来:在不久的将来会有 FriendlyUrl 的发布版本,然后您将能够更容易地从 WebMatrix 中的 Nuget 获取它。

更多信息的链接:

有关如何在 WebMatrix 中使用 Nuget 的Microsoft 友好 URL 包信息

于 2012-10-18T02:39:32.117 回答
0

当然可以,这叫做 URL 重写

http://developer.mindtouch.com/en/kb/Installing_MindTouch_Core_on_Windows_%28IIS%29/Rewrite_web.config_for_IIS7

或在这里

http://www.phpgenious.com/2010/04/url-rewriting-with-php-and-iis-7/

或谷歌了解更多信息

于 2012-10-18T00:06:02.477 回答