草庐IT

ASP.NET MVC SEO 网址

coder 2024-02-27 原文

我的目标是让 url 路由如下:

http://www.abc.com/this-is-peter-page

http://www.abc.com/this-is-john-page

如果不在上面的 url 中放置 Controller 名称和函数名称,实现此目的的最简单方法是什么?如果找不到上面的页面,我应该重定向到 404 页面。

插件 1:this-is-peter-page 和 this-is-john-page 不是静态内容,而是来自数据库。

最佳答案

与KingNestor 的实现类似,您还可以执行以下操作以简化您的工作:

1) 编写你的模型

public class MyUser{public String UserName{get; set;}}

2) 添加路由到全局asax

routes.MapRoute(
   "NameRouting",
   "{name}",
   new { controller = "PersonalPage", action = "Index", username="name" });

3) 从 IModelBinder 中推出您自己的自定义模型绑定(bind)器

public class CustomBinder : IModelBinder
    {
       public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
       {
          var request = controllerContext.HttpContext.Request;
          var username = getUserNameFromDashedString(request["username"]);
          MyUser user = new MyUser(username);

          return user;
       }
    }

4) 在你的行动中:

public ActionResult Index([ModelBinder(typeof(CustomBinder))] MyUser usr)
{
    ViewData["Welcome"] = "Viewing " + usr.Username;
    return View();
}

关于ASP.NET MVC SEO 网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1072746/

有关ASP.NET MVC SEO 网址的更多相关文章

  1. ruby - 在 ASP 页面上 Mechanize 中断 - 2

    require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie

  2. ruby - 如何从短网址获取长网址? - 2

    如何使用Ruby将短URL(tinyURL、bitly等)转换为相应的长URL? 最佳答案 我不使用Ruby,但总体思路是向服务器发送HTTPHEAD请求,服务器将返回301响应(永久移动),其中包含URI的Locationheader.HEAD/5b2su2HTTP/1.1Host:tinyurl.comAccept:*/*回复:HTTP/1.1301MovedPermanentlyLocation:http://stackoverflow.comContent-type:text/htmlDate:Sat,23May200918

  3. asp.net - 在 Ruby 中重新实现 ASP.NET 成员资格和用户密码哈希 - 2

    我有一个大型用户数据库(约200,000个),我正在将其从ASP.NET应用程序转移到RubyonRails应用程序。我真的不想要求每个用户重置他们的密码,所以我试图在Ruby中重新实现C#密码哈希函数。旧函数是这样的:publicstringEncodePassword(stringpass,stringsaltBase64){byte[]bytes=Encoding.Unicode.GetBytes(pass);byte[]src=Convert.FromBase64String(saltBase64);byte[]dst=newbyte[src.Length+bytes.Leng

  4. ruby-on-rails - 解析 youtube 网址 - 2

    我写了一个ruby​​youtubeurl解析器。它旨在接受以下结构之一的youtubeurl输入(这些是目前我能找到的youtubeurl结构,也许还有更多?):http://youtu.be/sGE4HMvDe-Qhttp://www.youtube.com/watch?v=Lp7E973zozc&feature=relmfuhttp://www.youtube.com/p/A0C3C1D163BE880A?hl=en_US&fs=1目的是仅保存剪辑或播放列表的ID,以便可以将其嵌入,因此如果它是剪辑:'sGE4HMvDe-Q',或者如果它是播放列表:'p/A0C3C1D

  5. asp.net - IronRuby 死了吗? - 2

    我是.Net程序员,希望扩展并可能在我当前和future的Web应用程序中使用一些Ruby。看着IronRubyWebsite最后一次发布是将近一年前:2011年3月13日。否announcements从那时起就已经在他们的网站上制作了。考虑到所有这些,我想到了几个问题:IronRuby死了吗?如果该项目已终止,是否有任何替代方案集成到.Net中?如果它还活着,它仍然是一个积极维护的项目吗?我在哪里可以找到最新版本?我是不是找错了树?我是否应该将ruby​​保留为ruby​​,将.Net保留为.Net,这两个独立的实体永远不会在同一个项目中相遇?我在stackoverflow上看到过有

  6. javascript - 如何将数据从 ASP.NET WebForms 传递到 Aurelia Global Scope - 2

    我正在从基于Web表单的遗留应用程序引导Aurelia。我的身份验证相关信息在自定义基页类的Web表单应用程序中维护。我如何将此身份验证信息传递和维护到Aurelia的全局范围?这样我就可以在使用路由构建菜单时使用它来根据用户/Angular色显示/隐藏某些菜单项? 最佳答案 您可以将逻辑添加到您的自定义基页中以添加标记到文档的头部,使所有信息都可用于javascript应用程序:...window.appInfo={user:'foo',bar:'baz'};...然后在您的aurelia应用中,您可以根据需要访问此信息:expo

  7. javascript - 为什么 ASP.NET 在 IE7 中导致 "Operation Aborted"错误? - 2

    我已经阅读了很多博客文章,其中提供了IE中“操作中止”错误的原因和解决方案。我最近构建了一个应用程序,有时会为某些用户出现此错误。让我详细解释一下。该应用程序是在VS2008中构建的.NET2.0、ASP.NET和C#Web应用程序。它使用ComponentOneWeb控件以及标准的VisualStudio控件。在其中一个网页中,我让用户在一组ComponentOneWeb输入控件中键入输入,然后将其添加到集合中。集合绑定(bind)到中继器,每次在集合中创建新条目时,中继器都会反弹。如果用户从转发器中删除条目(使用命令按钮),集合将更新并重新回到转发器。当应用程序提交给最终用户进行测

  8. ASP.NET - 使用 jQuery 处理基于 JSON 的 Web 服务的正确方法是什么? - 2

    将基于ASP.NETSOAP的Web服务转换为基于JSON的响应的正确方法是什么?...然后从jQuery中调用它们?集成基于jQuery的AJAX和ASP.NET时的“最佳实践”是什么?文章?书? 最佳答案 可以使用System.Runtime.Serialization和System.Runtime.Serialization.JSON将JSON转换为.NET类。我怀疑您对设置从客户端到服务器的函数调用更感兴趣。我觉得值得一试thistutorial.在本教程中,您需要添加一个网络服务“.asmx”文件。在asmx文件中,您将能

  9. asp.net - 开发不依赖于 JavaScript 的 ASP.NET 应用程序的技巧 - 2

    不确定这是否属于社区wiki...有人可以提供一些关于如何成功构建不依赖于JavaScript的ASP.NET站点的通用指南吗?我的理解是,我应该首先在没有JavaScript的情况下构建一个功能性网站,并用它来增强用户体验。说起来容易做起来难……除了禁用JavaScript并尝试它之外,我如何才能确保我的网站在没有JavaScript的情况下正常工作?或者这是经验带来的东西? 最佳答案 尝试ASP.NETMVC!当然,大多数示例都使用JavaScript来实现AJAX功能,但是构建一个不使用JavaScript的功能齐全的网站也很

  10. asp.net-mvc - 在 ASP.NET MVC 的局部 View 中执行 Javascript - 2

    我在head标签内使用这段JavaScript代码,以便用浏览按钮填充div,以便用户可以上传图像(swfupload)。...varswfu=function(){returnnewSWFUpload({//BackendSettings//settingsgohere...//Toolongtodisplayhere//DebugSettingsdebug:false});}window.onload=swfu;....这很好用,但问题是当我尝试将这段代码放在局部View中时。到目前为止,我还无法让它发挥作用。有没有更有经验的救援人员?谢谢 最佳答案

随机推荐