日期:2014-05-17  浏览次数:20552 次

关于asp.net mvc3 搜索功能地址的问题
我做了一个查询的功能。
 
我用string id,因为我要用默认的路由。
 
[ValidateInput(false)]
public ActionResult Search(string id)
 
{
 
}
 
==>>
 
如果我用post:
 
<form method="post" action="/tag/search/">
 <input type="text" id="id" name="id" />
 <input type="submit" value="查询" />
</form>
 
比如用户输入“你好”后,虽然能正常查询出数据,但是URL地址不会路由到 /tag/search/你好
 
 
 
如果我用get:
 
<form method="get" action="/tag/search/">
 <input type="text" id="id" name="id" />
 <input type="submit" value="查询" />
</form>
 
产生的URL地址是: /tag/search/?id=你好, 这时如果直接在地址栏中敲入/tag/search?id=你好 或者 /tag/search/你好 ,这样的都能访问,也都能取到数据,这样就造成一个内容多个地址的问题,对SEO不好。
 
 我想实现的功能就是 /tag/search/你好 这样的URL
 
所以这个问题该怎么解决?


------解决方案--------------------
在search路由里面判断 Request.QueryString["id"]==null 不为null跳404
------解决方案--------------------
不好整,浏览器就是这么提交的,而且按照楼主的要求(SEO),用 js 修改表单提交地址没有啥意义