Asp.net mvc 4 ASP.Net MVC4->;如何设置此路由
我想知道如何在我的MVC4应用程序中设置路由,在这里我可以有一个名为TMZ的控制器,并让它处理所有这些路由:Asp.net mvc 4 ASP.Net MVC4->;如何设置此路由,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,我想知道如何在我的MVC4应用程序中设置路由,在这里我可以有一个名为TMZ的控制器,并让它处理所有这些路由: /TMZ/About /TMZ/Webinars /TMZ/News /TMZ/Conferment /TMZ/CustomerCare /TMZ/Marketing/Emails /TMZ/Marketing/Brochures /TMZ/Marketing/Print /TMZ/Marketing/Press /TMZ/Marketing/Presentations /TMZ/Mar
/TMZ/About
/TMZ/Webinars
/TMZ/News
/TMZ/Conferment
/TMZ/CustomerCare
/TMZ/Marketing/Emails
/TMZ/Marketing/Brochures
/TMZ/Marketing/Print
/TMZ/Marketing/Press
/TMZ/Marketing/Presentations
/TMZ/Marketing/Graphics
/TMZ/Marketing/OCSRY
/TMZ/Marketing/Resources
/TMZ/Marketing/DesignStandards
/TMZ/Marketing/Videos
/TMZ/Marketing/PromoKits
/TMZ/Faculty/Forms
/TMZ/Faculty/Reports
/TMZ/CE/Guides
/TMZ/CE/Reports
/TMZ/Academy/Papers
/TMZ/Academy/Books
/TMZ/Academy/Promotions
/TMZ/ManualOfOperations
显示代码:
这是我的RouteConfig.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace LicenseeArchive
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("TMZ",
"TMZ/{action}/{subaction}/{id}",
new { controller = "TMZ", action = "Index", subaction = UrlParameter.Optional, id = UrlParameter.Optional },
null,
new[] { "LicenseeArchive.Web.Controllers" });
routes.MapRoute("Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
null,
new[] { "LicenseeArchive.Web.Controllers" });
}
}
}
这是我的Global.asax.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace LicenseeArchive
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
}
}
这是我的TMZ控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace LicenseeArchive.Controllers
{
public class TMZController : Controller
{
//
// GET: /TMZ/
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Marketing(string subaction)
{
string _view = "Index";
switch (subaction)
{
case "Brochures":
_view = "Marketing/Brochures";
break;
}
return View(_view);
}
}
}
下面是我的视图文件夹结构:
Views
Account
Login.cshtml
Manage.cshtml
Register.cshtml
Home
About.cshtml
Contact.cshtml
Index.cshtml
Shared
_Footer.cshtml
_Head.cshtml
_HeaderBlock.cshtml
_Layout.cshtml
_LeftAside.cshtml
_LoginPartial.cshtml
_TopNav.cshtml
Error.cshtml
TMZ
Academy
Books.cshtml
Papers.cshtml
Promotions.cshtml
CE
Guides.cshtml
Reports.cshtml
Faculty
Forms.cshtml
Reports.cshtml
Marketing
Emails.cshtml
Brochures.cshtml
Print.cshtml
Press.cshtml
Presentations.cshtml
Graphics.cshtml
OCSRY.cshtml
Resources.cshtml
DesignStandards.cshtml
Videos.cshtml
PromoKits.cshtml
About.cshtml
Conferment.cshtml
CustomerCare.cshtml
News.cshtml
ManualOfOperations.cshtml
Webinars.cshtml
_ViewStart.cshtml
Web.Config
在本例中,我假设您有一个名为TMZ的控制器,在该控制器中,您设置了所有其他操作,包括营销、学院、教员和CE
但有两件事需要考虑
TMZController
中的操作应该有一个字符串id参数来处理请求。此id将被传递给营销活动的“资源”或学院活动的“书籍”TMZController
中的操作应该有一个字符串id参数来处理请求。此id将被传递给营销活动的“资源”或学院活动的“书籍”TMZController
中的操作应该有一个字符串id参数来处理请求。此id将被传递给营销活动的“资源”或学院活动的“书籍”TMZController
中的操作应该有一个字符串id参数来处理请求。此id将被传递给营销活动的“资源”或学院活动的“书籍”希望这是清楚的。最简单的方法是在
Global.asax.cs
routes.MapRoute("Default",
"{controller}/{action}/{subaction}/{id}",
new {subaction= UrlParameter.Optional, id = UrlParameter.Optional});
这意味着您也可以在其他控制器中使用相同的url格式。您的TMZController看起来像:
public class TMZController : Controller
{
public ActionResult About()
{
return View();
}
public ActionResult Marketing(string subaction)
{
return View();
}
}
因为子操作/id都是可选的,所以您可以构造由2、3或4部分组成的URL,只需在操作中提取额外的参数,然后在方法体中根据需要处理它们。最简单的方法是在
Global.asax.cs
routes.MapRoute("Default",
"{controller}/{action}/{subaction}/{id}",
new {subaction= UrlParameter.Optional, id = UrlParameter.Optional});
这意味着您也可以在其他控制器中使用相同的url格式。您的TMZController看起来像:
public class TMZController : Controller
{
public ActionResult About()
{
return View();
}
public ActionResult Marketing(string subaction)
{
return View();
}
}
因为子操作/id都是可选的,所以您可以构造由2、3或4部分组成的URL,只需在操作中提取额外的参数,然后在方法体中根据需要处理它们。最简单的方法是在
Global.asax.cs
routes.MapRoute("Default",
"{controller}/{action}/{subaction}/{id}",
new {subaction= UrlParameter.Optional, id = UrlParameter.Optional});
这意味着您也可以在其他控制器中使用相同的url格式。您的TMZController看起来像:
public class TMZController : Controller
{
public ActionResult About()
{
return View();
}
public ActionResult Marketing(string subaction)
{
return View();
}
}
因为子操作/id都是可选的,所以您可以构造由2、3或4部分组成的URL,只需在操作中提取额外的参数,然后在方法体中根据需要处理它们。最简单的方法是在
Global.asax.cs
routes.MapRoute("Default",
"{controller}/{action}/{subaction}/{id}",
new {subaction= UrlParameter.Optional, id = UrlParameter.Optional});
这意味着您也可以在其他控制器中使用相同的url格式。您的TMZController看起来像:
public class TMZController : Controller
{
public ActionResult About()
{
return View();
}
public ActionResult Marketing(string subaction)
{
return View();
}
}
因为subaction/id都是可选的,所以您可以构造由2、3或4部分组成的URL,只需在操作中提取额外的参数,然后在方法体中根据需要处理它们。TMZ应该是站点的根(路由的静态部分)。控制器将是URL的下一部分。第三部分是个人行为。但我也会有家庭和帐户控制器以及邮件控制器。我现在正在阅读有关区域的内容,我认为这可能是解决方案。您应该在默认路线之前添加您的路线。在这里,您在注册所有RoutsMz后添加它,它应该是站点的根目录(路由的静态部分)。控制器将是URL的下一部分。第三部分是个人行为。但我也会有家庭和帐户控制器以及邮件控制器。我现在正在阅读有关区域的内容,我认为这可能是解决方案。您应该在默认路线之前添加您的路线。在这里,您在注册所有RoutsMz后添加它,它应该是站点的根目录(路由的静态部分)。控制器将是URL的下一部分。第三部分是个人行为。但我也会有家庭和帐户控制器以及邮件控制器。我现在正在阅读有关区域的内容,我认为这可能是解决方案。您应该在默认路线之前添加您的路线。在这里,您在注册所有RoutsMz后添加它,它应该是站点的根目录(路由的静态部分)。控制器将是URL的下一部分。第三部分是个人行为。但我也会有家庭和帐户控制器以及邮件控制器。我现在正在阅读有关区域的内容,我认为这可能是解决方案。您应该在默认路线之前添加您的路线。在这里,你在注册所有路线+1后添加它。这是个好主意。这个答案比我的好。我得承认:)谢谢:)公平地说,你的回答可能更有效