0

我创建了一个项目,并在其中努力工作并创建了许多模型、视图和控制器。一切都很好。我决定重命名我的一个模型,并相应地重命名我的控制器并认为它会继续工作得很好。这是因为我想在以后更合适的地方使用原始名称。例如。

旧名称:
MyOldModel
MyOldController
MyOldView

被重命名为:
MyNewModel
MyNewController
MyNewView

现在一切仍然很好,当我单击指向我的新视图的链接时,我的程序会查找并尝试显示显然不存在的 MyOldView。但是,当我手动输入 /MyNewView 时,它可以工作。

如何更改我的控制器以在 MyNewView 文件夹中查找索引,而不是在 MyOldView 文件夹中查找索引。

我什至尝试删除并重新创建控制器无济于事。

提前感谢您的帮助。

编辑:对于那些这么快回复的人需要注意的是:所采取的确切步骤是:
1. 将模型文件从 MyOldModel.cs
重命名为 MyNewModel.cs 2. 将控制器文件从 MyOldController.cs 重命名为 MyNewController。 cs
3. 将视图上的文件夹(仅包含 Index.cshtml)
从 MyOldView 重命名为 MyNewView
4. 在每一步,Visual Studio 都会提示我将所有引用重命名为要重命名的对象,我接受了(说是)。所以类名都得到了正确更新。至少从我所见,所有其他参考也是如此。

根据这里所说的,它应该可以工作。

我只是重命名了

4

4 回答 4

1

根据操作员的要求,我的评论作为答案:

检查您的 _Layout 是否也通过按钮单击指向正确的视图,否则当您用新的控制器/视图替换/重命名它们时,它仍然会搜索旧的控制器/视图,很高兴能提供帮助!

于 2012-06-11T15:09:41.033 回答
0

您是否确保重命名了 Controller 文件中的类,而不仅仅是文件本身?即它包含

public class MyNewController : Controller {
    ....
}
于 2012-06-11T14:46:55.657 回答
0

假设您在以下位置有一个 Index 操作MyNewController

public class MyNewController: Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

现在确保您已将视图放置在~/Views/MyNew/Index.cshtml. 这是既定的惯例。请注意,如果您的控制器类被调用MyNewController,则必须调用该文件夹MyNew。另外不要忘记在重命名控制器类后重新编译您的 Web 应用程序。

于 2012-06-11T14:47:46.693 回答
0

您是否对路由列表进行了必要的修改(在 Global.asax 文件 i Application_Start() 事件中注册):

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }
于 2012-06-11T14:50:37.607 回答