0

我是新来的MVC和我的问题是这如何设置我的网站根指向特定的控制器+操作,然后在Web.config文件中设置位置+例如:http://localhost:8080/能够被所有匿名访问并登录。MVC3与剃刀web.config授权默认路由

我一直在玩的位置和路径,但只是无法弄清楚,在我的Global.asax ,我不确定我是否拥有Home + Index作为controller + Action的正确根源。

下面是一些代码:

web.config文件(片断)

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
</authentication> 
<authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
</authorization> 

我不知道该站点的根目录的<location path="">应该是什么。

的Global.asax(片段)

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
} 

在Global.asax中默认的路由,因为我想它去家庭控制器行动指数的部位,所以当你输入http://localhost:8080/

在此先感谢。

回答

3

您已经在MapRoute的第三个参数中执行此操作。

new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

这些指定您的默认控制器和操作,完全按照您的需要。

+2

好吧,我猜测一样多,但web.config中的授权位置+路径如何,所以我可以键入http:// localhost:8080,它会通过授权,因为它目前将我发送到登录页面帐户控制器+ LogOn操作? – 2012-02-26 00:17:35

+2

我之前评论的原因是我想保持授权,我已经设置了表单身份验证以在整个网站中应用,并且只需在web.config中为根添加一个位置+路径元素。我已经有了设置。 – 2012-02-26 00:28:14

+1

您可以通过Action或Controller级别的[Authorize]属性来控制该属性。它也可以用作全局过滤器。形成您所说的话,看起来您已将其设置在您的主控制器或其索引操作上。 – veblock 2012-02-26 00:34:25