我的mvc应用程序中有两个视图。它们都存储在区域A和家庭文件夹中。
我最近正在更改项目的属性,并要求在iis中重新配置我的站点配置,因为我总是单击是。从那时起,我收到500.19错误,说我的配置文件有错误的数据。
此时我完全糊涂了。我将web.configs与其他应用程序web.configs进行了比较,确实没有区别。所以,然后我改变了我的路由,以便输入这个。 :
http://stackoverflow/myarea/home
实际上是我的观点。 :
http://stackoverflow/myarea/home/index
所以,当我输入时。 :
http://stackoverflow/myarea/home/index
=>这个错误与500.19
但是当我使用时。 :
http://stackoverflow/myarea/home
=>这没有错误,但会带来与上面相同的视图
我已经尝试过很多东西在iis中吹掉我的应用程序并重新创建它,多次iis重置,删除我的视图并重新创建它。什么都没有接近工作。
现在奇怪的是我在同一个文件夹中有另一个视图。 :
http://stackoverflow/myarea/home/myotherview
当我直接进入上面的这个网址时,它完全没有问题,没有500.19。
所以,好像有什么东西把我的观点与这个问题联系在一起。我知道这是一个奇怪的,但我迷失在下一步尝试。希望有人之前见过这样的事情。我知道500.9通常是web.config中的一个问题,但是在其他页面工作之后我觉得它是某种我不知道的设置。
答案 0 :(得分:0)
500.19是配置问题。
我怀疑你没有在global.asax或注册asax文件设置正确的区域中的路由。没有看到你的路线,我无法更具体地帮助你。但您可能需要在
中设置类似的内容public static void RegisterRoutes(RouteCollection routes)
routes.MapRoute(
"DefaultIndexRoute",
"{controller}/{action}/{id}",
new {controller = "Home", action="Index", id=UrlParameter.Optional}
);
}
在AreaRegistrations.asax文件中将是
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"DefaulAreatIndexRoute",
"MyArea/{controller}/{action}/{id}",
new {controller = "Home", action="Index", id=UrlParameter.Optional},
new [] {"My.Area.Namespace.Controllers"} // optional namespace in case there is a conflict
);
}
这是一种包罗万象的路线。 MVC将根据匹配的第一个路线选择您的路线。因此,您最有可能希望将其放在列表的底部。使用上面指定的更具体的路线。
基本上如果mvc找不到合适的路由,它会把它扔回IIS,以确定你最有可能得到错误。
请发布您的路线配置,以便我们为您提供更多帮助。感谢。