如何为控制器操作设置多个别名

时间:2017-07-27 18:24:42

标签: c# asp.net-mvc

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

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

/Search/Search?text=mySearchText /User/SearchTransactions?type=purcahse /Transactions/UserSearch?UserId=1

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

1 个答案:

答案 0 :(得分:1)

你已经有了解决方案的人把它放在基本控制器中并使用actionName属性

进行装饰

    [ActionName("Search1")]
    public ActionResult SearchText(string text) {
        return View();
    }

  [ActionName("Search2")]
    public ActionResult SearchType(string Type) {
        return View();
    }

  [ActionName("Search3")]
    public ActionResult searchId(int ID) {
        return View();
    }

现在你可以这样做

/search1
/search2
/search3