【发布时间】:2016-08-01 10:42:44
【问题描述】:
我的目标是让这些 URI 在 ASP.NET MVC 中工作:
http://localhost:57165/Blas/bla1.xml
http://localhost:57165/Blas/bla2.xml
...
http://localhost:57165/Blas/blan.xml
如您所见,文件名可能会有所不同,并且控制器操作最终意味着根据文件名喷出 xml 文件。
我有这个控制器:
public class BlasController : Controller
{
// GET: SiteMaps
public ActionResult Index(string fileName)
{
return View();
}
}
还有这个路由代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Blas",
"{controller}/{fileName}"
);
}
不幸的是,我收到了 404。是否有可能让它工作?
PS:
我认为这是相关的:
【问题讨论】:
-
首先,尝试在 web.config 中添加:
<modules runAllManagedModulesForAllRequests="true" /><system.webServer>部分,以允许带有文件扩展名的路由。 -
您不使用路由中的默认值。试试看。还有一件事是你应该把它放在你的默认 MapRoute 的顶部,它路由到 HomeController/Index 。
-
@SlavaUtesinov - 在我的 web.config 中看不到 system.webServer。我错过了什么吗?
-
@csetzkorn,如果没有,请添加此部分。
-
正如@MRebati 所说,您还没有在这里定义默认路由。所以至少定义一个默认动作,在这种情况下是“索引”。
标签: c# asp.net-mvc