2017-01-10 11 views
3

私のMVCアプリケーションにAdmin/Vendorのようなルートがあります。このルートを変更することなく、別の方法に同じルートを指す必要があります。CustomAdmin/CustomVendorプラグインの経路を無効にする方法nopcommerce

私は属性ルーティングを試みましたが、運はありませんでした。これを行う方法はありますか?

public class AdminController 
{ 
    public ActionResult Vendor() 
    { 
     return View(); 
    } 
} 

カスタムメソッド::私の現在のコードは

オリジナルメソッドの下に与えられたクラスがインタフェースIRouteProviderを実装して、プラグインで

public class CustomAdminController 
{ 
    [Route("Admin/Vendor")] 
    public ActionResult CustomVendor() 
    { 
     return View(); 
    } 
} 
+0

プラグインのルートを上書きしますか? –

+0

@Div私はプラグインでオーバーライドする必要があります – Optimus

+0

さて、あなたのプラグインの 'RouteProvider'ファイルを見せてください! –

答えて

2

プラグインを開発しているので。カスタムルートをRouteProviderに追加する必要があります。

デフォルトでは、nopCommerce AdminControllerVendorは存在しません。したがって、あなたは管理者のベンダーリストメソッドを上書きしようとしていると仮定します。

public partial class RouteProvider : IRouteProvider 
{ 
    public void RegisterRoutes(RouteCollection routes) 
    { 
     var route = routes.MapRoute("Plugin.GroupName.PluginName.CustomVendor", 
            "Admin/Vendor/List", 
             new { controller = "CustomAdminController", action = "CustomVendor", orderIds = UrlParameter.Optional, area = "Admin" }, 
             new[] { "Nop.Plugin.GroupName.PluginName.Controllers" }); 
     route.DataTokens.Add("area", "admin"); 
     routes.Remove(route); 
     routes.Insert(0, route); 
    } 
    public int Priority 
    { 
     get 
     { 
      return 100; // route priority 
     } 
    } 
} 

側注:

enter image description here

のように見え

GroupNamePluginNameは、プラグインのグループ名とプラグインの名前でなければなりません。

希望すると便利です。

1

、あなたは簡単にそこルートを上書きすることができます。 同様に、私は私のプラグインでRouteProviderという名前のクラスを持っている、だから私はabstract機能RegisterRoutesを実装しており、単にそれがここ

routes.MapRoute("Plugin.Promotion.Combo.SaveGeneralSettings", 
       "Admin/Vendor", 
       new { controller = "CustomAdmin", action = "CustomVendor", }, 
       new[] { "Nop.Plugin.Promotion.Combo.Controllers" } 
      ); 

Plugin.Promotion.Comboによってオーバーライドすることができますが、あなたのプラグインSaveGeneralSettingsを使用してdirectory.Andまたは任意のものに置き換える必要がありますあなたはあなたのルートのURLになりますそれを使用したい

+0

これを試みたが、動作していない – Optimus

+0

'RegisterRoutes(RouteCollectionルート)関数内のコードの部分を書いていましたか? – gdmanandamohon

+0

それでも古いコントローラの動作へのルーティング – Optimus

関連する問題