[转载]ASP.NET MVC把字符串格式化成URL的方法

[转载]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扩展.如果您感兴趣可以继续关注兔纸的文章.

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏