Asp.net mvc 为什么要为每个操作方法创建视图?
嗨;我是一名Asp.net软件开发人员。我试着学习asp.NETMVC。但我面对着一件奇怪的事情。我的控件方法名称必须与视图名称相同或相反。真奇怪!请看我的布局:Asp.net mvc 为什么要为每个操作方法创建视图?,asp.net-mvc,asp.net-mvc-3,c#-4.0,razor,Asp.net Mvc,Asp.net Mvc 3,C# 4.0,Razor,嗨;我是一名Asp.net软件开发人员。我试着学习asp.NETMVC。但我面对着一件奇怪的事情。我的控件方法名称必须与视图名称相同或相反。真奇怪!请看我的布局: <nav> <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li>
<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.NETMVC很奇怪。我不喜欢控制器的操作名称必须与查看页面名称相同?怎么做?我认为视图名称必须独立于任何名称您是正确的,默认情况下,视图名称必须与操作名称相同。然而,这很容易改变。您只需在控制器中调用View方法,并传入所需的任何视图名称:
return View("SomeViewName",articles);
我有两点意见:
MVC中的GetAll通常被称为索引,就像在文章索引中一样
您可以将方法命名为某物,然后返回具有不同名称的视图
public ActionMethod GetAll()
{
return View("Index");
}
它不必与方法的名称相同。默认情况下,MVC3将查找具有相同名称的视图,但您可以创建具有任何名称的视图,并告诉MVC返回该视图:
return View("MyView",articles);