所以我想让我的网址看起来像这样:
example.com
,example.com/contact
,example.com/sign-up
,example.com/account
而不是默认的MVC方式:
example.com
,example.com/Home/Contact
,example.com/Account/SignUp
,example.com/Account/Account
所有HomeController
视图都可以正常工作,但我AccountController
不能。
转到时example.com/account
出现错误消息:
无法找到该资源。
这是我的RouteConfig
:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Account",
url: "{action}/{id}",
defaults: new { controller = "Account", action = "Account", id = UrlParameter.Optional }
);
}
并且因为我想显示Account/SignUp
视图,因为/sign-up
我在中添加了一些自定义代码AccountController
。
// GET: Account
public ActionResult Account()
{
return View();
}
// GET: Sign Up
[ActionName("Sign-Up")]
public ActionResult SignUp()
{
return View("SignUp");
}
这两种格式/account
还是/account/account
给了我与以前相同的错误。但是/about
,/contact
等等没有。
任何帮助表示赞赏,谢谢!
PS这是我的文件夹结构:
> Views
-> Account
--> Account.cshtml
--> SignUp.cshtml
-> Home
--> About.cshtml
--> Contact.cshtml
--> Index.cshtml
路由设置将需要更明确。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Account",
url: "account/{action}/{id}",
defaults: new { controller = "Account", action = "Account", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句