我有一个 ASP.NET MVC 路由问题。首先,让我解释一下我的区域设置。这很简单。
Areas
|
+--Foo
|
+--Controllers
|
+--BarController.cs
我在我的区域中有一个名为“Foo”的文件夹和一个名为“BarController.cs”的控制器 Bar 控制器有几个名为“DoStuff1()”、“DoStuff2()”等的方法。
我的网站使用以下 URL:
/foo/bar/15
/foo/bar/dostuff1
/foo/bar/dostuff2
第一个 URL 需要一个 id 并使用 Bar 控制器中的默认 Index() 方法来使用视图和模型填充网页。
在第二个和第三个 URL 中,我将它们用于 jQuery ajax 调用。
这是我的区域注册中的代码
context.MapRoute(null, "Foo/Bar/DoStuff1", new
{
action = "DoStuff1",
controller = "Bar"
});
context.MapRoute(null, "Foo/Bar/DoStuff2", new
{
action = "DoStuff2",
controller = "Bar"
});
context.MapRoute(null, "Foo/Bar/{id}", new
{
action = "Index",
controller = "Bar"
});
我的问题是,对于我创建的每个新控制器方法,我必须在区域注册文件中添加另一个路由映射。例如,如果我添加方法 DoStuff3(),我需要将其添加到区域注册中:
context.MapRoute(null, "Foo/Bar/DoStuff3", new
{
action = "DoStuff3",
controller = "Bar"
});
如何创建通用路由映射来处理我上面提到的不需要为新控制器方法添加区域注册文件的 URL?