MVC无法找到View in Action Method

时间:2013-09-09 06:19:02

标签: asp.net-mvc-3

刚开始使用MVC,我遇到了问题。 以下是我的文件的层次结构:

1.WebJltNZ\JWebJltNZ.Presentation.Web.Mvc\Controllers : LbpProfessionalController
2.WebJltNZ.Presentation.Web.Mvc\ViewModels : LbpProfessional
3.WebJltNZ.Presentation.Web.Mvc\Views\Home\RiskAndInsuranceServices\JltAffinityPartnerships            :LbpProfessionalProtectionApplication

以下方法:

public ActionResult Index()
{
    return View(); // it's cannot be found.
}

无法找到该视图。

我在这里遗漏了什么。请帮忙。

2 个答案:

答案 0 :(得分:5)

你的名字错了。它的工作方式是控制器名称匹配视图文件夹中的子文件夹;并且action方法匹配该子文件夹中的文件。

这意味着Controllers文件夹中的LbpProfessionalController应与LbpProfessional文件夹中名为Views的文件夹匹配。

Index内的LbpProfessionalController方法应与Index.cshtml文件夹中的\Views\LbpProfessional文件匹配。

结构看起来像这样

\Controllers\LbpProfessionalController.cs
\Views\LbpProfessional\Index.cshtml

请注意,控制器的名称以...Controller结尾,但文件夹名称未获得该部分。

这是链接控制器和视图的标准方法,当您遵循这些规则时,您可以使用一个简单的操作方法:

public ActionResult Index()
{
   // This view will be found if you have given the view the right name 
   // ("Index.cshtml") and put it in the right place (folder named 
   // after controller).
   return View(); 
}

但是如果你想拥有一个与默认链接方式不同的视图,那么你需要指定另一个视图的路径。它看起来像这样:

public ActionResult Index()
{
   return View("anotherViewName"); 
}

答案 1 :(得分:0)

将Controller类继承到已放置公共ActionResult Index()

的类