2011-04-18 75 views
1

我正在使用最新的功能url路由,但它不工作。代码之前,下面是个你必须知道:asp.net Url路由不能使用表单身份验证

  1. 其非MVC
  2. 我使用我在哪里重定向用户的Login.aspx
  3. 网站上IIS6
  4. 开发托管形式认证 - VS 2010,.NET 4.0

Webconfig代码:

<authentication mode="Forms"> 
    forms name=".COOKIEDEMl" timeout="90" loginUrl="~/User/Login.aspx" defaultUrl="~/index.aspx"/> 
</authentication> 

的Global.asax代码:

protected void Application_Start(object sender, EventArgs e) 
{    
    SetRouting(RouteTable.Routes);   
} 

private void SetRouting(RouteCollection routeCollection) 
{ 
    routeCollection.MapPageRoute("Company", 
    "Company/{CompanyName}", 
    "~/Asset/RequestForm.aspx", true, new RouteValueDictionary { { "CompanyName", "?CompanyName" } }); 

    routeCollection.MapPageRoute("Deal", 
    "Company/{CompanyName}/{DealName}", 
    "~/Asset/RequestForm.aspx", true, new RouteValueDictionary { { "DealName", "?DealName" } }); 
} 

用户不重定向到RequestForm.aspx当用户键入网址:http://localhost/testprj/company/Gmail/?my deal

+0

有什么意见? – Ankit 2011-04-26 07:01:21

回答

0

你不可错过的查询字符串参数到路线。而是使用路由参数。即不要使用?my-deal,而要使用company/gmail/my-deal

另外,最好不要在URL中使用任何空格。用连字符(不是下划线)替换它们。