C# 如何为控制器操作使用多个别名

C# 如何为控制器操作使用多个别名,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个搜索控制器,它具有一个通用的Search()操作,该操作需要几个参数,并具有一系列逻辑。我想从其他控制器调用它,而不需要很多复制/粘贴代码 我想从这些不同的URL/controllers.actions调用此操作 /Search/Search?text=mySearchText /用户/搜索交易?类型=purcahse /交易/UserSearch?UserId=1 我可以将该方法移动到baseController,但我必须在每个控制器上调用/搜索,并且我希望它们的名称都不同。您已经有了

我有一个搜索控制器,它具有一个通用的Search()操作,该操作需要几个参数,并具有一系列逻辑。我想从其他控制器调用它,而不需要很多复制/粘贴代码

我想从这些不同的URL/controllers.actions调用此操作

/Search/Search?text=mySearchText
/用户/搜索交易?类型=purcahse
/交易/UserSearch?UserId=1


我可以将该方法移动到baseController,但我必须在每个控制器上调用/搜索,并且我希望它们的名称都不同。

您已经有了解决方案人员,将其放在baseController中,并用actionName属性装饰它

现在你可以做喜欢的事了

/search1
/search2
/search3

我只想使用一个实际的Search()操作,不能使用我知道的多个ActionName属性of@user3953989所以基本上你想用3个不同的名字来调用1个action我真的不认为gonnahappen人,虽然你可以重定向到action hack,我想你可以检查我的第二个答案我试着用View(“../Search/Search”,model)中的,这样可以保持url的正确性,但该模型不处理查询字符串params@user3953989模型的问题是什么?它应该起作用吗?你的所有逻辑实际上都在你的通用“搜索”中“行动?如果是这样,我强烈建议您将该逻辑移到另一个类中,然后可以从解决方案中的任何控制器/操作调用该类。我看不出有什么理由攻击MVC路由,因为它应该是一行或两行到一个共享方法来进行搜索。@Tommy我试过了,但我有一堆逻辑也添加到了viewbag和其他与上下文相关的东西,这些东西在尝试传递到类方法和操作时变得一团糟
/search1
/search2
/search3