这可能是非常简单的事情,但是谷歌搜索并没有让我到任何地方。
在我们正在构建的 Web 应用程序中,我们有项目和模板。模板实际上只是项目,将 IsTemplate 标志设置为 true。所以很自然,我们有一个项目控制器来处理(或将处理)这两种情况。
我们有一个路由到New
控制器上的操作方法:
Project/New
这只是{controller}/{action}/{id}
处理该路线的标准路线。现在,New
action 方法有一个IsTemplate
参数。我想有一条路线,它被传入为假(上面的那个),第二条被传入为真:
Templates/New
用这样的不同 URL 屏蔽任意操作方法参数的正确方法是什么?我尝试了以下方法,但它只是混淆了路由(Html.ActionLink
最终指向Templates/New
):
routes.MapRoute(
null,
"Template/New",
new { controller = "Project", action = "New", IsTemplate = true }
);
还是将其拆分为两个操作方法并让它们调用具有硬编码参数值的单个私有控制器方法对我来说会更简单吗?