2015-09-22 71 views
0

我正在处理一个ASP.Net MVC项目,其中登录用户和普通用户之间的url格式没有区别,他们都浏览像这些url的页面:在ASP.NET Mvc站点中登录用户的自定义目录

www.example.com/home/contents (anyone) 
www.example.com/home/about (anyone) 
www.example.com/order/list (page for logged in user) 
www.example.com/help/contact (page for logged in user) 
www.example.com/buy-now (custom url for route order/buy action) 

我想将用户登录页面移动到不同的文件夹,以便搜索提供程序不会索引这些页面。不需要登录的页面应保持相同的网址。所以结果应该是

www.example.com/home/contents (anyone) 
www.example.com/home/about (anyone) 
www.example.com/user/order/list (page for logged in user) 
www.example.com/user/help/contact (page for logged in user) 
www.example.com/user/buy-now (custom url for route order/buy action) 

我该如何做到这一点?

+1

为什么不使用区域? –

+0

如果我使用区域,我应该将控制器和查看文件移动到该区域文件夹?我开始时不使用区域,所以所有视图文件都在Controller文件夹下的Views文件夹和Controller类下。我想用最小的变化来实现这一点。 – Can

回答

0

看起来你需要使用区域的。 创建一个用户区域并将用于登录用户的所有订单和帮助等控制器移动到该区域。

如果您不想将其移到用户区域。你也可以做路由配置。类似的东西 -

routes.MapRoute(
       name: "User", 
       url: "user/{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      );