C# MVC控制器未启动
我正在尝试设置一个路由控制器,以便在应用程序启动时浏览器缓存特定文件时拦截get请求。我可以在控制台中看到请求: 应用程序缓存进度事件(472中的275个) 我已将我的C# MVC控制器未启动,c#,asp.net-mvc,routes,C#,Asp.net Mvc,Routes,我正在尝试设置一个路由控制器,以便在应用程序启动时浏览器缓存特定文件时拦截get请求。我可以在控制台中看到请求: 应用程序缓存进度事件(472中的275个) 我已将我的Global.asax设置为调用RouteConfig.registerOutes(不过基本上只是OOTB代码): 我已经确认这实际上是在运行和注册我的路由(我写入带有时间戳的文本文件): (路径的某些位已明显更改) 我有一个名为reportscoontroller的控制器,它带有一个GetReport()方法,我希望调用该方法:
Global.asax
设置为调用RouteConfig.registerOutes
(不过基本上只是OOTB代码):
我已经确认这实际上是在运行和注册我的路由(我写入带有时间戳的文本文件):
(路径的某些位已明显更改)
我有一个名为reportscoontroller
的控制器,它带有一个GetReport()
方法,我希望调用该方法:
public ActionResult GetReport(string report)
{
return View();
}
但它从未被调用(我写入一个文本文件,如Global.asax
和RouteConfig
,但它从未发生过)
你知道我该怎么做吗?我做错了什么
编辑1:将
string report
参数添加到GetReport
。仍然是相同的问题。假设您的路线定义为
routes.MapRoute(
name: "Reports",
url: "Path/Whatever/App/Views/SubFolder/Reports/{report}", //with route param
defaults: new
{
controller = "Reports",
action = "GetReport"
}
);
您的操作方法签名需要报告
参数,否则路由将不匹配:
public ActionResult GetReport(string report)
{
return View();
}
很可能您的路线顺序不正确。请显示您的所有MapRoutes代码。
GetReport
操作方法不接受任何参数…您的路由的{report}
应该如何传递?@ErikPhilips发布了其余代码。这是我实际定义的唯一路由。@kaveman我将向GetReport
添加一个字符串参数,看看会发生什么。我们能看到完整的Global.asax和ReportsController的完整代码吗?
routes.MapRoute(
name: "Reports",
url: "Path/Whatever/App/Views/SubFolder/Reports/{report}", //with route param
defaults: new
{
controller = "Reports",
action = "GetReport"
}
);
public ActionResult GetReport(string report)
{
return View();
}