我在访问路线时遇到问题,如果它包含一个点。要进行复制,请创建默认的MVC4 WebApi应用程序。采取默认路线...
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
按如下方式编写控制器......
public class HomeController : Controller
{
public ActionResult Index(string id)
{
if (id == null)
{
return View();
}
else
{
return PartialView(id);
}
}
}
并在现有的“index.cshtml”旁边创建两个文件“test.cshtml”和“test.menu.cshtml”。
打开/ home / index / test按预期工作。它带回了“test.cshtml”的内容。
但是,打开/home/index/test.menu会返回404错误。
为什么会这样?怎么可以避免呢?
答案 0 :(得分:3)
您看到的404错误来自IIS。用于MVC路由的模块永远无法控制。
将以下选项添加到modules
中<system.webServer>
部分的web.config
部分将确保尝试MVC路由并解决您的问题:
runAllManagedModulesForAllRequests="true"
在我的web.config中没有现有的modules
部分,因此我将以下行添加到<system.webServer>
部分:
<modules runAllManagedModulesForAllRequests="true" />
现在它适用于我。