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