您好;我是Asp.net软件开发人员。我尝试学习asp.net mvc。但我面对奇怪的事情。我的控制器方法名称必须与视图名称相反或相反。这很奇怪!请看我的_Layout:
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Article", "GetAll", "Article")</li>
</ul>
</nav>
文章视图页面需要GetAll方法还需要GetAll.cshtml。我的愿望:我的视图页面名称必须独立于控制器类的方法名称。我的控制器:
我的解决方案:
我认为Asp.net mvc很奇怪。我不喜欢控制器的动作名称名称必须与视图页面名称相同?怎么做?我认为View名称必须独立形成任何名称
答案 0 :(得分:6)
您是正确的,默认情况下,您的视图名称必须与您的操作名称相同。但是,这很容易改变。您可以在控制器中调用View方法的this overload并传入您想要的任何视图名称:
return View("SomeViewName",articles);
答案 1 :(得分:1)
它不必与您的方法名称相同。默认情况下,MVC3将查找具有相同名称的View
,但您可以使用任何名称创建View
并告诉MVC返回该视图:
return View("MyView",articles);
答案 2 :(得分:0)
我有2条评论:
您可以为Method命名并返回一个名称不同的视图
public ActionMethod GetAll()
{
return View("Index");
}