http://148bc.com/Guest/?Action=Index
http://148bc.com/User/?Action=My
这样的url地址是怎么实现的?我看了一下还是有规律的,参数后面的地址后面都带了参数,
但直接这个页面并不存在,例如:
http://148bc.com/User/My.aspx
http://148bc.com/Guest/Index.aspx他这个是怎么实现的呢?请大家讨论.

解决方案 »

  1.   

    http://148bc.com/Guest/?Action=Index就相当于 http://148bc.com/Guest/default.aspx?Action=Index假设default.aspx 是该目录下的默认页面。
      

  2.   

    http://148bc.com/User/?Action=My
    那为什么我直接访问
    http://148bc.com/User/My.aspx
    会找不到资源呢?
      

  3.   

    把路由写成{controller}.html/{action} 
    http://dev.firnow.com/course/4_webprogram/asp.net/asp_netshl/200814/95823.html
      

  4.   

    1、下载ms的URLRewrite.dll,放到你的bin下
    2、Webconfige中添加如下代码:
    <RewriterRule>
            <LookFor>~/front/travel/hwlly(.[0-9]*)\.html</LookFor>
            <SendTo>~/front/travel/hwlly.aspx?articleid=$1</SendTo>
     </RewriterRule>
    其实这个hwlly(.[0-9]*)\.html是虚拟的,并不是实际存在的。只要符合格式就行。
    在想静态化的页面超链接代码替换为重写后的虚假URL:
      <a href='hwlly<%#Eval ("articleid") %>.html'> <%#Eval("title") %> </a>
    这样,实际网址~/front/travel/hwlly.aspx?articleid=1的地址就显示虚拟的网址~/front/travel/hwlly1.html
    就是这种原理了!你说的跟这个道理一样!
      

  5.   

    直接静态化处理,
    Url重写太耗内存了
      

  6.   

    http://148bc.com/User/?Action=My
    http://148bc.com/User/My.aspx
    My 是参数值不是页面 
      

  7.   

    改Global.asax里的,路由规则就行了
      

  8.   

    http://148bc.com/Guest/?Action=Index
    http://148bc.com/User/?Action=My
    这两个地址没有使用URL重写,只是在IIS中设置了默认访问页面,比如你在Guest用户下设置默认访问页面为default.aspx,那么你的地址相当于http://148bc.com/Guest/default.aspx?Action=Index
    如果设置的默认页面时1.aspx,那么你的地址相当于http://148bc.com/Guest/1.aspx?Action=Index
      

  9.   

     你这种是MVC还是WEBFORM
    MVC的是路由来实现你说的是URL重写,URL重写就是通过正则替换而已,使用URLRewrite实现
    而你给出的这个地址不是很普通的地址吗?只是默认的index.aspx可以省略
    index.aspx?id=1和?id=1效果一样
      

  10.   


    http://www.google.com.hk/search?q=MapPageRoute&hl=zh-CN&safe=strict&prmd=ivns&source=lnt&tbs=lr:lang_1zh-CN|lang_1zh-TW&lr=lang_zh-CN|lang_zh-TW&sa=X&ei=jkw4TcDsCcGycJuZ-d8K&ved=0CAcQpwUoAQ
    等等。
      

  11.   

    抄一段msdn
    http://msdn.microsoft.com/zh-cn/library/cc668201.aspx#aspnet_routing_versus_url_rewriting
    中的话:
    ASP.NET 路由不同于 URL 重写。 URL 重写通过在将请求发送到网页之前实际更改 URL 来处理传入请求。 例如,一个使用 URL 重写的应用程序可能会将 URL 从 /Products/Widgets/ 更改为 /Products.aspx?id=4。 此外,URL 重写通常没有相应的 API 来创建基于模式的 URL。 在 URL 重写中,如果更改了 URL 模式,则必须手动更新包含原始 URL 的所有超链接。由于 ASP.NET 路由可以从 URL 提取值,所以处理传入请求时不更改 URL。 如果必须创建一个 URL,则将参数值传递到为您生成 URL 的方法中。 若要更改 URL 模式,请在某位置更改该模式,您在应用程序中创建的基于该模式的所有链接将自动使用新模式。