MVC3的奇怪行为

时间:2011-10-17 05:16:10

标签: asp.net-mvc-3 view error-handling razor

我创建了一个自定义模型,即支持我的Razor View。然后我创建了一个控制器,如下面的`namedspace MyCandidate.Controllers

public class CandidateViewModelController : Controller
{
    //
    // GET: /CandidateViewModel/

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

}

我的_Layout.cshtml

中也有以下声明
@Html.ActionLink("Canid", "Index", "CandidateViewModel")

接下来我创建了一个视图,该视图的第一个语句是

@model MyCandidate.Models.CandidateViewModel

当我运行我的项目时,我收到以下错误

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:

我花了3个多小时却想不通?

2 个答案:

答案 0 :(得分:0)

  1. 您的Index()未获取任何参数,但您向控制器发送了"CandidateViewModel")Index(string input)方法,其中包含属性[HttpGet]

  2. 这个错误,你没有在“Views / CandidateViewModel / Index.cshtml”中查看“索引”。

  3. 也许您删除母版页文件(_ViewSrat,_Layout)

  4. 或者您在更改路线时犯了错误

答案 1 :(得分:0)

将ActionLink更改为:

@Html.ActionLink("Canid", "Index")

如果要将任何数据传递给View,您还可以使用ViewBag:

// Controller :
ViewBag.CandidateValues = CandidateViewModelData;

// View 
@Html.Label("LabelName", (CandidateViewModel) ViewBag.CandidateValues.FiledName);