C# 如何在RouteConfig文件中设置默认页面和URL
这是我第一次在MVC中开发,并且已经被这个问题困扰了一段时间 我想做什么 我想让URL看起来像这样:C# 如何在RouteConfig文件中设置默认页面和URL,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,这是我第一次在MVC中开发,并且已经被这个问题困扰了一段时间 我想做什么 我想让URL看起来像这样: example.com/SiteName/Project/Index/3 与此相反: example.com/SiteName/Project?projectId=3 此外,我希望用户能够键入example.com/SiteName并查看example.com/SiteName/Home/Index,因为这是默认页面 我所拥有的 我有一个页面,主页,显示项目列表。单击其中一个项目,项目页面显
example.com/SiteName/Project/Index/3
与此相反:
example.com/SiteName/Project?projectId=3
此外,我希望用户能够键入example.com/SiteName
并查看example.com/SiteName/Home/Index
,因为这是默认页面
我所拥有的
我有一个页面,主页,显示项目列表。单击其中一个项目,项目页面显示所选项目的详细信息
在我的RouteConfig.cs
文件中,我有:
routes.MapRoute(
name: "Project",
url: "{controller}/{action}/{proejctId}",
defaults: new { controller = "Project", action = "Index", projectId = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
问题
当我首先在RouteConfig.cs
文件中为Project
列出routes.MapRoute
时,我得到了我想要的URL(example.com/SiteName/Project/Index/3
)
但是,当我尝试example.com/SiteName
时,它会在共享文件夹中显示Error.cshtml
模板
我发现一个问题提到顺序很重要。
但如果我切换顺序,example.com/SiteName
会成功显示example.com/SiteName/Home/Index
页面,但当我单击列表中的项目时,URL会更改为:example.com/SiteName/projectd=3
如何将默认页面设置为Home/Index,并将URL保持为example.com/SiteName/Project/3
?将路由更改为
routes.MapRoute(
name: "Project",
url: "Project/{action}/{projectId}",
defaults: new { controller = "Project", action = "Index", projectId = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
谢谢你的建议。我尝试了,但是默认页面仍然重定向到错误页面。什么是
SiteName
?你在使用区域吗?为什么要将其垂直于路由?SiteName
是应用程序名称。我们在xxx.com
server.OK下有许多独立的应用程序,需要从路由定义中删除“SiteName/”(答案已更新)