私は助けが必要です。メイン プロジェクトからポータブル領域にアクセスできません。すべてをビルドし、このポータブル エリア (localhost:123/IW/Home) にアクセスしようとすると 404 エラーが発生しますが、通常のエリアはすべて正常に動作しています (例: localhost:123/Portal/Home)。
ポータブル領域をインストールするために私が行ったことは次のとおりです - MVCContrib をダウンロードしました - メイン プロジェクト (WAB と呼ばれる) に MVCContrib.dll への参照を追加しました
- WAB と同じソリューションで新しいクラス ライブラリ プロジェクトを作成しました。-この新しいクラス ライブラリは IWPortableArea と呼ばれ、必要なアセンブリ参照 (MVCContrib、System.mvc など) を追加しました。
-IWRegistration を作成しました:
namespace IWPortableArea
{
public class IWRegistration : PortableAreaRegistration
{
public override void RegisterArea(System.Web.Mvc.AreaRegistrationContext context, IApplicationBus bus)
{
context.MapRoute(
"iw",
"iw/{controller}.aspx/{action}",
new { controller = "login", action = "index" });
RegisterAllAreas(GetType());
}
public override string AreaName
{
get { return "iw"; }
}
}
}
-ビューファイルを使用しない単純なコントローラーを作成しました:
namespace IWPortableArea.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return Content("yo you are in IW Portable Area, congrats");
}
}
}
-メイン プロジェクトにポータブル領域への参照を追加しました: IWPortableArea.dll
-最後に、メイン アプリケーションの Global.asax.cs を次のように変更しました。
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Portal", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}