Piranha CMS にカスタム コントローラーを追加する際に問題が発生しています。新しいサイトをセットアップし、テンプレートからインストールしましたが、基本機能はすべて正常に動作しています。ドキュメントの次のコードを使用して、マネージャー セクションにメニューを追加しました。
Manager.Menu.Add(new Manager.MenuGroup()
{
InternalId = "MEProducts",
Name = "Products"
});
Manager.Menu.Where(m => m.InternalId == "MEProducts").Single().Items =
new List<Manager.MenuItem>() {
new Manager.MenuItem() {
Name = "Products",
Action = "productlist",
Controller = "products",
Permission = "ADMIN",
SelectedActions = "productlist,productedit"
},
new Manager.MenuItem() {
Name = "Product groups",
Action = "productgrouplist",
Controller = "products",
Permission = "ADMIN",
SelectedActions = "productgrouplist,productgroupedit"
}
};
このメニューはマネージャ インターフェイスに正常に表示されます。問題は、メニュー項目をクリックするとコントローラ パスが見つからないことです。
コントローラーはクラスであり、 Areas/Manager/Controllers/ProductsController.cs にあり、コードは以下のとおりです
namespace MyApp.Areas.Manager.Controllers
{
public class ProductsController : ManagerController
{
//
// GET: /Manager/Products/
public ActionResult Index()
{
return View();
}
public ActionResult ProductList()
{
return View();
}
public ActionResult ProductEdit(string id = "")
{
return View();
}
}
}
Areas/Manager/Views/Products/ のProductList
とのビュー ファイルがあります。ProductEdit
私のWeb構成には、必要だと思われる次の行が含まれています
<add key="manager_namespaces" value="MyApp.Areas.Manager.Controllers" />
マネージャーの製品リンクをクリックすると、
リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。要求された URL: /MyApp/manager/products/productlist
ページ /MyApp/manager/page は、デフォルト構成で正常に表示されます。
私は何かを逃したか、どこかで何か間違ったことをしたと確信しています。それがどこにあるのかわからないだけです。