[转载]ASP.NET MVC把字符串格式化成URL的方法 – 兔纸 – 博客园.
只有试着去欣赏她,对她时刻保持着好奇心,你才能真正的了解她。她,就是艺术。
ASP.NET MVC把字符串格式化成URL的方法
在ASP.NET MVC中URL Routing是一个很好的规范URL的方法.但有时候您也许会需要把指定的字符串格式化成正常和安全的URL.我们都知道,一般域名注册的要求是只能有 数字.字母和横线的,而我们常常会用到数据库中的信息作为Url中的一部分比如定位到文章作者页面的时候,常常会把作者的名字包含进去.
假如作者的名字叫tu zhi. 作者信息页面的URL假设是这样:<a href=”http://www.cnblogs.com/tu zhi”>兔纸</a>,其中tu zhi是从数据中取得的作者名称.
如果我们请求这条链接的时候,我们发现跳转后的地址是这样的:http://www.cnblogs.com/tu%20zhi 这样URL就会显得非常的不美观,也显得不规范.我们的目标是把它转换成http://www.cnblogs.com/tu-zhi 如果您说这也没什 么啊?我看%20就比较好看, 那么当作者姓名为tu&zhi的时候是什么情况呢? 有兴趣的话您可以试试看,闲话不多说了,直接进入正题.
对这种字符串的处理方法很简单,一个方法足矣:
/// <summary> /// 转换成url /// </summary> /// <param name="text">文本</param> /// <returns>url字符</returns> public static string ToUrlName(this string text) { if (text == null) throw new Exception("Can't Url convert a null string."); //为空时不能转换 var result = text.Trim().Replace(" ", "-"); //转换 var replacer = new Regex(@"[^\w\-]", RegexOptions.Compiled); //正则表达式 result = replacer.Replace(result, "").ToLower(); return result; }
调用的时候就可以这样:
string author = Strings.ToUrlName("tu zhi");
好了,这篇文章到此就结束了,希望对您有一点小小的帮助. 下篇文章会介绍一些自定义的HtmlHelper扩展.如果您感兴趣可以继续关注兔纸的文章.