在我的 MVC 解决方案中,我有不同的区域。该地区的注册之一是下面显示的类。
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 操作方法。它确实偶尔会按预期调用。但是现在它不执行 action 方法。
但是,如果我将 Url 键入为hxxp://localhost:63363/Commercial/VesselManagement/index/abc,则会调用 Action 方法 Index 并传递参数 abs。
不仅对于此操作方法,而且对于整个应用程序中的所有操作方法,都必须以这种模式调用 url。可能是什么问题。提前感谢大家的帮助。
注意:我使用了 hxxp insted of http
全球.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 不带任何参数,但我知道这会影响路由。