¿Controller的Action方法和Views之间的关系?

时间:2015-06-23 17:00:22

标签: asp.net-mvc model-view-controller

我有几个关于Controller Action Method和View之间关系的概念性问题:

  • 我看到视图的名称是Controller名称的功能;控制器类的名称与视图的命名空间相同(由.cshtml文件所在的文件夹的名称表示),方法的名称与作为视图的.cshtml文件的名称相同。为什么会这样?如果我在解释中遗漏了一些内容,它是如何起作用的?

  • 有没有办法可以将.cshtml文件(视图)放在文件夹的外面,与控件的类名相匹配?

  • MVC是否限制.cshtml文件的名称与控制器操作方法的名称相匹配?

  • 控制器操作方法中返回的View()方法究竟是什么?

  • 为什么控制器类的方法被称为“控制器操作方法”?

  • MVC是否限制控制器的名称以“Controller”字结尾?

感谢所有

1 个答案:

答案 0 :(得分:1)

我强烈建议您浏览一下MVC教程,例如此代码项目tutorial

  • 命名约定不是一成不变的,但通常允许可理解的结构。
  • 是的,要导航到视图,您可以指定路径。 return View("~/this/is/your/path/ViewName.cshtml");
  • 否。如上所述,假设返回类型符合方法的返回类型(参见下文),您可以使用正确的路径从任何方法返回任何视图。
  • View()是一种C#"方法"它告诉项目导航到您指定的视图以及您传递的任何参数。通过查看docs可以找到更正确,更深入的答案。默认return View()尝试导航到return View("MethodName");
  • Action methods是返回类型为ActionResult的方法。 Redirect和View就是这样的例子。可以认为它们类似于对象返回类型,例如voidstring,而ActionResult将告诉您的项目执行某些操作,例如重定向到另一个方法或通过返回ViewResult View()
  • 否。试试吧!然而,这通常是一种很好的做法,因为它可以轻松地按名称分隔您的文件,因为您的项目可能会有类似的文件名。