用MVC4在做标签云的时候碰到一个有关问题
用MVC4在做标签云的时候碰到一个问题
比如我现在有如下标签:
asp.net,mvc4,关键字,asp.net mvc4
因为,我想做一个根据标签名查询有多少文章使用这个标签的功能,并列出文章。
控制器代码
然后写了个路由:
,这样在前台就可以这样访问:
http://localhost:8286/tag/mvc4
http://localhost:8286/tag/关键字
http://localhost:8286/tag/asp.net
http://localhost:8286/tag/asp.net mvc4
然页结果却只有前面二个链接能访问,后面二个带.和空格的都不能访问。报错如下:
因为我想URL中带关键字对SEO会好一些,所以我没有用public ActionResult Tag(int id).
大家有没有做过这方面的,请指点一二。
------解决方案--------------------
编码最大的坏处就是降低了链接的可读性。在web 3.0时代,链接不再是面向浏览器的东西,它应该面向最终用户。
我举一些真实的系统的例子:
http://*.com/questions/13668155/mvc-3-action-dependency-injection
http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx
http://www.codeproject.com/Articles/150801/Inheriting-from-an-Internal-WinForms-Designer
http://blog.chromium.org/2012/06/try-chrome-in-metro-mode.html
http://blogs.mcafee.com/mcafee-labs/windows-8-metro-brings-new-security-risks
比如我现在有如下标签:
asp.net,mvc4,关键字,asp.net mvc4
因为,我想做一个根据标签名查询有多少文章使用这个标签的功能,并列出文章。
控制器代码
public ActionResult Tag(string strTag)
{
//根据tag名得到tagid
var tag = from t in db.Tags
where t.TagName == strTag
select t;
int tagid = tag.FirstOrDefault().TagID;
//根据tagid从表Tag_relationship获取哪些文章使用了这个tag
var articles = from art in db.Tag_relationships
where art.TagID == tagid
select art;
return View(articles.ToList());
}
然后写了个路由:
routes.MapRoute(
"Tag",
"tag/{strTag}",
new { controller = "Tag", action = "Tag" }
);
,这样在前台就可以这样访问:
http://localhost:8286/tag/mvc4
http://localhost:8286/tag/关键字
http://localhost:8286/tag/asp.net
http://localhost:8286/tag/asp.net mvc4
然页结果却只有前面二个链接能访问,后面二个带.和空格的都不能访问。报错如下:
HTTP 错误 404.0 - Not Found
您要找的资源已被删除、已更名或暂时不可用。
最可能的原因:
指定的目录或文件在 Web 服务器上不存在。
URL 拼写错误。
某个自定义筛选器或模块(如 URLScan)限制了对该文件的访问。
因为我想URL中带关键字对SEO会好一些,所以我没有用public ActionResult Tag(int id).
大家有没有做过这方面的,请指点一二。
------解决方案--------------------
编码最大的坏处就是降低了链接的可读性。在web 3.0时代,链接不再是面向浏览器的东西,它应该面向最终用户。
我举一些真实的系统的例子:
http://*.com/questions/13668155/mvc-3-action-dependency-injection
http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx
http://www.codeproject.com/Articles/150801/Inheriting-from-an-Internal-WinForms-Designer
http://blog.chromium.org/2012/06/try-chrome-in-metro-mode.html
http://blogs.mcafee.com/mcafee-labs/windows-8-metro-brings-new-security-risks