具有通用参数名称和特定名称的MVC操作

时间:2016-09-20 14:30:34

标签: asp.net-mvc asp.net-mvc-routing overloading

我希望有一个方法可以采用特定的参数名称或通用名称:

    //generic
    public ActionResult Delete(string param1, string param2, int param3)
    {
        //do stuff
    }

    //specific
    public ActionResult Delete(string sAssetCode, string sLockout, int Seq)
    {
        //do stuff
    }

通用方法命名允许我设置如下所示的路由,这使我可以轻松创建一个URL,通过几乎任何控制器删除对象:

        routes.MapRoute(
            name: "AssetLockoutDelete",
            url: "{controller}/Delete/{param1}/{param2}/{param3}",
            defaults: new { action = "Delete" }
        );

但这意味着这些方法有点难以阅读和遵循,因为参数现在是通用的。

如何让我的控制器中存在两种方法,同时仍然优雅?

以下是一种可能性,但似乎并非如此:

    //generic
    public ActionResult Delete_Helper(string param1, string param2, int param3)
    {
        //do stuff
    }

    //specific
    public ActionResult Delete(string sAssetCode, string sLockout, int Seq)
    {
        //do stuff
    }

     //redirects all deletes to the "helper" method that uses generic parameter names
     routes.MapRoute(
         name: "AssetLockoutDelete",
         url: "{controller}/Delete/{param1}/{param2}/{param3}",
         defaults: new { action = "Delete_Helper" }
     );

0 个答案:

没有答案