私の MVC ソリューションには、さまざまな領域があります。エリアの登録の 1 つであるクラスが下に表示されます。
public class CommercialAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Commercial";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Commercial_default",
"Commercial/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
これに基づいて、URL hxxp://localhost:63363/Commercial/VesselManagementは、VesselManagement コントローラの Index アクション メソッドを呼び出す必要があります。時々、予想どおりに呼び出しました。しかし、今はアクション メソッドを実行しません。
しかし、URL をhxxp://localhost:63363/Commercial/VesselManagement/index/abcと入力すると、Action メソッド Index が呼び出され、パラメーター abs が渡されます。
このアクション メソッドだけでなく、アプリケーション全体のすべてのアクション メソッドに対して、このパターンで URL を呼び出す必要があります。何が問題になる可能性がありますか。助けてくれてありがとう。
注: httpの代わりにhxxpを使用しました
Global.asx
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
//Configure FV to use StructureMap
var factory = new StructureMapValidatorFactory();
//Tell MVC to use FV for validation
ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(factory));
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
}
}
VesselManagement Index() アクション
public ActionResult Index()
{
InitialData();
return View();
}
注:今、index がパラメーターを取らないことに気付きましたが、それがルーティングに影響することはわかっています。