【发布时间】:2020-06-17 03:44:45
【问题描述】:
我有以下@html.RenderAction() 方法的现有代码:
Html.RenderAction("Widget", "Widget", new
{
wTitle = "World map dashboard",
wTitleSpan = "",
wTitleDisplay = "",
height = "300px;",
wAction = "GetWorldMapMethod",
wCssId = "WorldMap",
cssOptions = "WorldMap",
ShipSelection = "fleet",
infoTitle = HttpUtility.HtmlEncode("<b>Info dashboard</b>"),
infoText = HttpUtility.HtmlEncode("<p>Info</p>")
});
执行此操作时,将调用方法GetWorldMapMethod()。我正在尝试了解如何调用此参数操作方法。
这是我的路由配置:
routes.MapRoute(
"ManagementShipDetails",
"Management/ShipDetails/{id}/{successMessage}",
new {controller = "Management", action = "ShipDetails", successMessage = UrlParameter.Optional}
);
routes.MapRoute(
"Report",
"Data/Report/{viewname}",
new
{
controller = "Data",
action = "Report",
});
routes.MapRoute(
"Apikeydelete",
"Account/DeleteApiKey/{key}",
new {controller = "Account", action = "DeleteApiKey"}
);
routes.MapRoute(
"FleetOverview",
"Fleet",
new {controller = "Data", action = "Fleet"}
);
routes.MapRoute(
"ShipOverview",
"{ShipName}/Overview",
new {controller = "Data", action = "Overview", ShipName = UrlParameter.Optional}
);
routes.MapRoute(
"Hull Performance",
"{ShipName}/HullPerformanceDrop",
new {controller = "Data", action = "HullPerformanceDrop", ShipName = UrlParameter.Optional}
);
routes.MapRoute(
"ReportingViewReport",
"{ShipName}/Report/{id}",
new
{
controller = "Reporting",
action = "Report",
ShipName = UrlParameter.Optional,
id = UrlParameter.Optional
}
);
routes.MapRoute(
"PortalDataGetValue",
"PortalData/GetValue/{tag}/{selection}/{date}/{Filter}",
new {controller = "PortalData", action = "GetValue", Filter = UrlParameter.Optional}
);
routes.MapRoute(
"PortalDataGetDashboardData",
"PortalData/GetDashboardData/{selection}/{date}",
new {controller = "PortalData", action = "GetDashboardData", Filter = UrlParameter.Optional}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Dashboards", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
【问题讨论】:
-
请出示您的 routeconfig 文件
-
基本上这会调用 Widget 控制器的 Widget 动作,其中 wAction = "GetWorldMapMethod" 是路由数据。我希望您的代码在操作方法中处理此参数并做出相应的决定。分享控制器代码以获得更准确的答案
-
是的,控制器具有操作方法“Widget”和“GetWorldMapMethod”,因此在调用方法“GetWorldMapMethod”之后调用加载方法“Widget”。我的问题是如何调用“GetWorldMapMethod”方法。
-
好吧,这些块有什么问题,或者您只是想知道
RenderAction扩展是如何工作的? -
@gurkan:我读到的是 OP 继承了这段代码,并试图了解它是如何工作的,因为没有明显的理由调用
GetWorldMapMethod()。
标签: asp.net asp.net-mvc asp.net-routing maproute renderaction