使用 ASP.NET MVC 的 SEO URL

2024-04-11

有没有一个确定的DO and DONT当实施 seo url 时?许多好的做法对于 .html 网站来说似乎很好,但在中型/大型数据库网站上却失效了。

据我所知,网址应该是www.mysite.com/category/page-name-here

如果我希望创建一个内容丰富的网站,并且默认类别和页面是数据库驱动的 - 这是否会阻止我拥有诸如www.mysite.com/about or www.mysite.com/home因为关于页面和主页可能会发生冲突。

尽管路由引擎很灵活,但上述可行和/或值得吗?

-edit-

只是为了详细说明我的问题,是否可以用数据库控制路由引擎?

网址最好包含有意义的描述 - 例如stackoverflow.com/category/mvc and stackoverflow.com/questions/seo-urls-with-asp-net-mvc很好(相对于stackoverflow.com/category/9955 and stackoverflow.com/questions/734583)

作为一个实验,我想将控制提升到另一个层次,假设上面的两个控制器(类别和问题),每个显示动态数据可以修改为简单的stackoverflow.com/mvc and stackoverflow.com/seo-urls-with-asp-net-mvc.

我需要确保我的数据库包含一个表,告诉我前者将作为类别路由,后者作为问题路由 - 这可以通过简单的数据库查找来实现,并且需要在 Global.asax 中实现

我的问题是,这能否实现以及潜在的陷阱是什么。


如果将编码路由添加到通用路由之上,则很容易实现:

// AboutController.Index()
routes.MapRoute( 
    "About",
    "about",
    new { controller = "About", action = "Index" });

// HomeController.Index()
routes.MapRoute( 
    "Home",
    "home",
    new { controller = "Home", action = "Index" });

// ArticleController.Index(string category, string pagename)
routes.MapRoute( 
    "Article",
    "{category}/{pagename}",
    new { controller = "Article", action = "Index" });

如果您愿意,它们都可以使用相同的控制器,但如果它们使用单​​独的控制器可能会更容易一些。

您遇到的唯一问题是,如果您有一个名为“关于”或“家庭”的类别,但这不太可能是我想象的。

还应该指出的是您不必使用 ASP.NET MVC 来使用路由功能 http://msdn.microsoft.com/en-us/library/cc668202.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ASP.NET MVC 的 SEO URL 的相关文章

  • 从 ASP.NET MVC 将 HTML 表导出到 Excel

    我目前正在使用 ASP NET MVC 并且有一个操作方法 可以在视图中以表格格式显示一些报告 我需要通过单击视图中的按钮将同一个表导出到 Excel 文档 如何才能实现这一目标 您将如何为此创建 Action 方法 在您的控制器操作中 您
  • App_Web_XXX.dll 中发生 System.NullReference 异常 - 部分视图中出现错误

    当登陆我的 MVC 页面之一时 我收到此错误 dll 名称中包含随机字符串 类型的第一次机会异常系统 NullReferenceException发生在 App Web cjmhrrqn dll 中 附加信息 未将对象引用设置为对象的实例
  • ASP.NET MVC - 以一种形式处理多个对象

    我遇到了一个场景 我有一个域对象 它附加了一组对象 像这样的事情 public class Person public string Name get set public IList
  • 如何检查 MVC cshtml 页面中的调试模式

    如何检查 MVC cshtml 页面中的调试模式 此代码在 cshtml 页面中不起作用 bool isRelease false if DEBUG isRelease false else isRelease true endif if
  • 具有多个 Angular 2 应用程序的 ASP.Net Core MVC [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试为一个我知道会变得越来越复杂的项目准备结构 我想使用 ASP Net Core MVC 进行顶层导航 我想在每个主视图中放置
  • 我可以在 ASP.NET MVC 中使用 [CompressFilter] 而不破坏甜甜圈缓存吗

    我正在努力获得 压缩过滤器 http www thegrubbsian com p 202 使用甜甜圈缓存并遇到问题 发生的情况是整个页面都被缓存 而不仅仅是甜甜圈 的来源CompressFilter我正在使用的是下面的 我从原始来源 ht
  • Angular2 命名路由

    我用的是Angular2Webpack 入门 https github com AngularClass angular2 webpack starter in 这个最新版本 https github com AngularClass an
  • ASP.NET 视图中的区域?

    我正在使用 razor 引擎制作 ASP NET MVC 应用程序 我想知道是否可以使用Regions http msdn microsoft com en us library 9a1ybwek aspx在一个视图中 就像是 region
  • T4MVC Base 控制器没有默认构造函数

    我的控制器是从另一个没有默认构造函数的控制器继承的 T4MVC 生成以下构造函数 假设基本控制器具有默认构造函数 protected MyControllerController Dummy d 我该如何解决这个问题 有趣的是 根据this
  • ASP.NET MVC - 临时要求除一页之外的整个站点授权的简单方法

    我正在建立一个混合了公共页面和会员专用页面的网站 登录系统按原样工作正常 不过 我想启动一个封闭的 仅限邀请的预览 并暂时要求访问者登录才能执行除欢迎页面之外的所有操作 目前我有 Authorize 某些操作方法的属性 我也可以向其他操作方
  • 将视频上传/保存到数据库或文件系统

    我以前从未尝试过保存视频 所以我对此了解不多 我知道如果视频很小 我可以转换为字节数组并保存到数据库 但是为了提高效率 我想了解如何将任何上传的视频保存到我的服务器文件中 然后只保存该文件的文件路径我的数据库表中的视频 我完全不知道如何开始
  • 保护 ASP.NET MVC 应用程序中的 ajax 调用的安全

    我有一个基于 ASP NET MVC 的应用程序 它允许根据用户进行不同级别的访问 当前的工作方式是 当用户访问页面时 会根据数据库进行检查以确定用户拥有的权限 然后根据用户拥有的访问级别选择视图 有些用户比其他用户看到更多数据并拥有更多可
  • 如何构造控制器来对多个条件进行排序 asp.net mvc

    设置控制器按许多 可能为空 标准排序的最佳方法是什么 举例来说 我正在建立一个销售汽车的网站 我的 CarController 有一个函数 Index 它将汽车的 IList 返回到视图 并且每辆车的详细信息都用部分视图呈现 构建这个结构的
  • 以编程方式启用 Internet 连接共享

    我可以手动执行此操作 方法是右键单击网络连接 打开 共享 选项卡 单击 允许其他网络用户通过此计算机的 Internet 连接进行连接 复选框 然后选择 家庭网络连接 在研究这个问题时 我发现了多组 COM 接口 1 Internet 连接
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 在 var 中渲染多个空格

    我试图在我的 var 中添加多个空格 但它被削减为一个空格或者呈现出来 仿佛 我尝试过使用 20 有人还有其他想法吗 ViewBag Subheading 曝光 我希望它看起来像这样 曝光 ViewBag Subheading Bringi
  • 在 ASP.NET MVC 中设置默认 JSON 序列化器

    我正在开发一个已部分转换为 MVC 的现有应用程序 每当控制器响应 JSON ActionResult 时 枚举都会以数字形式发送 而不是字符串名称 听起来默认的序列化程序应该是 JSON Net 它应该将枚举作为其名称而不是整数表示形式发
  • 编译器失败,错误代码-1073741819

    我们遇到以下错误 而且每次都需要重启服务器 The compiler failed with error code 1073741819 此外 ASP Net 工作正常 只有 ASP Net MVC 应用程序无法工作 任何想法 我的错误代码
  • 您如何填充/验证您的 ViewModel?

    我很好奇人们构建 ViewModel 的各种方式以及他们为什么选择该方法 我在这里可以想到几种方法 1 注入存储库 控制器加载模型并映射到 ViewModel 这里 ViewModel 构造函数可以采用各种集合来进行内部设置 在选择列表中
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr

随机推荐