asp.net mvc路由问题

时间:2011-07-15 06:46:04

标签: asp.net-mvc asp.net-mvc-routing url-routing

我有以下项目结构

http://img13.imageshost.ru/img/2011/07/15/image_4e1fd08fe0c5d.png

UserController代码:

public class UserController : Controller
    {

        public ActionResult Login()
        {
            return View(ValidationResult.OK);
        }
    }

AdminController代码:

public class AdminController : Controller
    {
        public ActionResult Login()
        {
            return View(ValidationResult.OK);
        }
}

路线

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 } 
            );

        }

当我尝试导航到http://localhost:2334/admin/login时,我在'/ admin / login'应用程序中得到“服务器错误。无法找到资源。请求的网址:/ admin / login /”

当我尝试导航到http://localhost:2334/user/login时,我得到了'/ admin / login'应用程序中的服务器错误。“HTTP错误404 - 找不到。 **

我什么都听不懂:(

2 个答案:

答案 0 :(得分:0)

不知道,可能是愚蠢的假设:您是否为控制器定义了适当的视图? 检查一下:

/Views/Admin/Login.cshtml
/Views/User/Login.cshtml

答案 1 :(得分:0)

首先尝试通过右键单击action方法在控制器的每个方法上创建html页面并添加视图......

然后从解决方案资源管理器app_start - > routeconfig设置你的默认页面gona run。

  routes.MapRoute(
            "YourControllername", // Route name
               "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Yourcontrollername", action = "methodname", id = UrlParameter.Optional } 
        );

请记住,您不需要在routeconfig中将控制器写在Home控制器后面,如果您有家用控制器,只需添加home。

并在创建可以肯定的索引方法后添加视图。