asp.net mvc - 视图和控制器

发布于 2024-07-30 12:28:25 字数 92 浏览 6 评论 0原文

控制器如何知道要返回哪些视图? 我认为这是按照命名约定,但我见过一些实例,例如在 Nerd Dining 应用程序中,名称不匹配。 在哪里或如何查看此映射? 谢谢。

How do controllers know which views to return? I thought it was by naming convention, but I have seen instances, for example in the Nerd Dinner application, where the names don't match. Where or how do I see this mapping? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

救星 2024-08-06 12:28:25
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

差不多就这样了..

当你只是 return View(); 时 在不指定名称的情况下,它会搜索与控制器操作同名的视图。 在本例中,Index.aspx

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

Will search for:

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

That's pretty much it..

When you just return View(); without specifying a name, it searched for the view with the same name as the controlleraction. In this case, Index.aspx

土豪 2024-08-06 12:28:25

可以通过三种方式指定视图名称。

按约定

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")
}

这最后一个仅在这一个位置查找,即您指定的位置。

There are three ways to specify a view name.

By Convention

public ActionResult MyAction {
  return View()
}

That will look for a view with the name of the action method, aka "MyAction.ascx" or "MyAction.aspx"

** By Name **

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

This will look for a view named "MyViewName.ascx" or "MyViewName.aspx".

** By application path **

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

This last one only looks in this one place, the place you specified.

青瓷清茶倾城歌 2024-08-06 12:28:25

它基于控制器中操作的名称。 这是一个示例:

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

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

当我说 return View(); 时

它将在 Views 目录、User 文件夹中查找 Index.aspx 或 Index.ascx。

它还会在 Shared 文件夹中查找。

It is based on the name of the Action in the Controller. Here's an example:

I have a controller named UserController.

One of my actions on that controller is named Index.

When I say return View();

It will look in the Views directory, in the User folder, for Index.aspx or Index.ascx

It will also look in the Shared folder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文