.net 4.0 创建新视图将导致404页

.net 4.0 创建新视图将导致404页,.net-4.0,asp.net-mvc-4,.net 4.0,Asp.net Mvc 4,我试图做一些非常简单的事情,但我似乎遗漏了一些东西。我试图在互联网上搜索结果,但没有任何结果,所以我想知道是否有人可以就这项看似简单而直接的任务提供建议 我有一个可以工作的MVC应用程序,并使用默认值(脚手架)创建了模型、控制器和视图 现在,我想为我的一个控制器操作创建一个新视图: public ActionResult Index() { return View(db.Blog.ToList()); } 因此,我右键单击操作结果,然后单

我试图做一些非常简单的事情,但我似乎遗漏了一些东西。我试图在互联网上搜索结果,但没有任何结果,所以我想知道是否有人可以就这项看似简单而直接的任务提供建议

我有一个可以工作的MVC应用程序,并使用默认值(脚手架)创建了模型、控制器和视图

现在,我想为我的一个控制器操作创建一个新视图:

public ActionResult Index()
        {
            return View(db.Blog.ToList());
        }
因此,我右键单击操作结果,然后单击添加视图。 这给了我一个对话框,在这里我指定了一个视图名“Test”,我点击“创建一个强类型视图”复选框并选择博客的模型类。 对于scaffold模板,我留空(注意,我尝试了索引,但没有任何好结果) 现在我单击添加按钮

正如所料,这将在视图/博客下创建一个新的view test.cshtml

现在,当我开始不进行调试并转到url:localhost:12341/Blog/Test时

我得到以下错误:

“/”应用程序中出现服务器错误。 找不到资源。 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

请求的URL:/Blog/test



版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.17929

您的操作方法称为索引,而不是测试。如果希望url为/Test,则需要将操作方法命名为Test(还有其他方法,但这是最好的方法)

如果要使用视图测试,则需要在view()方法中指定它


但是,您仍然需要使用索引url/Blogs/Index,因为您的操作方法是Index。

为什么它不起作用可能会有很多问题。研究ASP.NET MVC路由可能是值得的。目前,Mystere Man的解决方案可能是一个“快速修复”,假设您已将所有其他设置设置为默认设置

特别是,当您告诉浏览器转到
localhost:12341/Blog/Test
时,它(可能)会查找名为
BlogController
的控制器,然后执行
Test
操作。在您的情况下,您的操作被称为
Index
,因此您希望转到
localhost:12341/Blog/Index
(尽管您可以省略
Index
,因为这是默认操作)。最后,由于您的操作被称为
Index
,因此
View()
函数将自动查找
Index.cshtml
。msdn文档中对此进行了详细说明:

特别是:

如果ViewName属性为空,则将使用当前操作名称代替ViewName属性


我不明白为什么您指定了Visual Studio 2012,但您的.net Framework版本是4.0?VS的版本没有区别,重要的是您使用的是哪个框架版本。
return View("Test", db.Blogs.ToList());