asp.net mvc - 视图和控制器

时间:2009-08-06 14:37:33

标签: asp.net asp.net-mvc viewusercontrol

控制器如何知道要返回的视图?我认为这是通过命名约定,但我已经看到了实例,例如在Nerd Dinner应用程序中,名称不匹配。我在哪里或如何看到这种映射?感谢。

3 个答案:

答案 0 :(得分:6)

public class EmployeesController
{
    public ViewResult Index()
    {
        return View("CustomerName");
    }
}

将搜索:

Views/Employees/CustomerName.aspx
Views/Employees/CustomerName.ascx
Views/Shared/CustomerName.aspx
Views/Shared/CustomerName.ascx

这就是它......

当你刚刚返回View();在没有指定名称的情况下,它搜索了与controlleraction同名的视图。在这种情况下,Index.aspx

答案 1 :(得分:2)

指定视图名称有三种方法。

按惯例

public ActionResult MyAction {
  return View()
}

这将查找具有操作方法名称的视图,即“MyAction.ascx”或“MyAction.aspx”

**按姓名**

public ActionResult MyAction {
  return View("MyViewName")
}

这将查找名为“MyViewName.ascx”或“MyViewName.aspx”的视图。

**按申请路径**

public ActionResult MyAction {
  return View("~/AnyFolder/MyViewName.ascx")
}

这最后一个只在这个地方,你指定的地方。

答案 2 :(得分:0)

它基于Controller中Action的名称。这是一个例子:

我有一个名为UserController的控制器。

我对该控制器的一个操作名为Index。

当我说返回View();

它将在用户文件夹的Views目录中查找Index.aspx或Index.ascx

它也会在共享文件夹中查找。