外部アセンブリで定義されたコントローラアクションを呼び出そうとしていますが、アプリケーションは常にリソースが見つからないと返します。コントローラは簡単ですし、次のようになります。私はそれがコントローラを見つけるdoesntのコントローラとアクションを呼び出すしようとすると、しかし外部アセンブリでMVCコントローラ/アクションを呼び出す
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MyExternal.Controllers" }
);
:
namespace MyExternal.Controllers
{
[HandleError]
public class ProjAdminController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
その後、私は、オプションの名前空間を含むようにルートを更新します。私はルートデバッガをインストールし、それはルートテストに合格しますが、コントローラを見つけたりブレークポイントで停止したりしません。おそらくそれはかなり小さく見えますが、私はこれを理解できません。私の謝罪はこれがダブです。元のコードにはコントローラクラスの命名にバグがありましたが、残りのコードはこれを行う方法の例としてうまく機能します。
はbinフォルダの外部アセンブリですか?あなたが試しているURLは何ですか? –
これは期待通りにうまく動作しますが、直接バインドされた領域に頼らずに行う方法の良い例になります。私は誤って私のコントローラの名前をコントローラのサフィックスに付けておらず、それを慣例で見つけられませんでした。一息。しかし、ルート登録の名前空間の仕様は、リクエストハンドラがより長時間の検索に先立ってこれらの名前空間を最初に検索できるようになった場合に比べて、コントローラを大幅に高速に見つけるのに役立ちます – MikeJ
エリアは必要なものではないのでわかりません何が問題なの? –