MVC RouteConfig

时间:2015-02-14 19:00:56

标签: c# asp.net-mvc

我已经建立了一个MVC项目,它完美无缺。但我升级了一个新的控制器,添加了一些新的视图,没有什么特别的...网页在网上工作几乎完美,只是它无法在线找到我的新观点。

我真的不知道为什么,因为它适用于我机器上localhost的所有调试模式,但是在发布时没有,我确实发布了整个解决方案。

我也注意到我无法向我的工作家庭控制器添加新页面,我只能编辑我拥有的页面。

我检查了RouteConfig,只有默认的基本设置

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

我已经创建了一个名为调查问卷的新控制器,我是否必须将其添加到RouteConfig才能使其在线运行?

浏览器地址:

www.<address>.com/home/OneView

但是对于新的视图我想要新页面:

www.<address>.com/Questionnaires/Mixer

浏览到地址时,我收到此错误:

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Questionnaires/Mixers

2 个答案:

答案 0 :(得分:2)

你说它无法找到你的观点,但路由与视图无关。它涉及将请求映射到控制器和操作方法。 action方法是返回视图的方法。如果您创建了一个名为QuestionnairesController的新控制器,那么您应该可以在/Questionnaires访问它。由于该URL未指定操作方法,因此默认情况下(因为您配置的路由默认值)将查找名为Index的操作方法。

如果您想访问/Questionnaires/Mixer中的调查问卷控制器中的调音台操作方法,那么根据您向我们展示的路线,这应该可以正常工作。

当您在return View();操作方法中执行Mixer时,默认会在~/Views/Questionnaires/Mixer.csthml(在其他几个位置,但这是您最常放置的位置)中查找视图

答案 1 :(得分:0)

这有点令人尴尬,但我没有注意到我在Debug模式下发布了我的项目,设置为Release解决了问题。从来没有错过这个。

抱歉这一切,请怜悯......