控制器如何知道哪些视图返回?我认为这是通过命名约定,但我看到了例子,例如在名称不匹配的书呆子晚宴应用程序中。我在哪里或如何看到这个映射?谢谢。asp.net mvc - 视图和控制器
2
A
回答
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
这几乎是它..
当你刚刚返回查看();没有指定名称,它搜索与控制相同名称的视图。在这种情况下,Index.aspx
0
它基于控制器中Action的名称。这里有一个例子:
我有一个名为UserController的控制器。
我在该控制器上的一个操作被命名为Index。
当我说return View();
它看起来在浏览目录,在用户文件夹中,Index.aspx的或Index.ascx
此外,它也会在共享文件夹。
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")
}
这最后一个看起来只有在这一个地方,你指定的地方。
相关问题
- 1. 重用ASP.NET MVC视图和控制器
- 2. 部分视图控制器ASP.NET MVC
- 3. 如何使用视图和控制器显示图像ASP.NET MVC
- 4. IoC和ASP.NET MVC控制器
- 5. MVC:控制器和视图通信(C#)
- 6. ASP.NET MVC:控制控制器/视图的命名约定?
- 7. 通用ASP.NET MVC模型,控制器和视图
- 8. Asp.Net MVC控制器 - 动作和视图映射元数据
- 9. ASP.NET MVC如何动态创建控制器和视图?
- 10. ASP.NET MVC 2:在视图和控制器中测试什么
- 11. ASP.NET MVC如何链接视图和控制器?
- 12. Asp.net视图模型和控制器MVC继承
- 13. ASP.NET MVC视图和控制器输出缓存
- 14. ASP.Net MVC 2文件组织;视图和控制器
- 15. asp.net mvc视图和控制器中的多对多
- 16. 如何:页面视图和控制器在ASP.NET MVC中继承
- 17. ASP.Net MVC 3 - 单控制器,单作用和多视图
- 18. ASP.Net MVC控制器
- 19. MVC另一个控制器或视图?
- 20. 从一个控制器视图到另一个控制器视图的ASP.NET MVC 3 Razor渲染部分视图
- 21. 限制为特定视图的ASP.NET MVC控制器操作
- 22. .NET Core MVC通用控制器视图
- 23. 关闭父视图控制器和子视图控制器
- 24. 初始视图控制器和选项卡视图控制器
- 25. 自AJAX的更新在ASP.Net MVC局部视图/控制器和复制的div
- 26. 控制器,视图和accep_nested_attributes_for
- 27. MVC3控制器和视图
- 28. ASP.NET MVC的通用控制器和Spring.NET
- 29. asp.net MVC控制器和身份验证
- 30. Asp.Net Mvc账户控制器JSon和View?
您传递给View()的参数是否意味着它将搜索的名称?另外,有没有办法让控制器在特定区域寻找视图? – Crios 2009-08-06 14:41:55
参数是视图的名称,例如CustomerName = CustomerName.aspx。据我所知,mvc的位置是硬编码的,但你可以自定义开发一个ViewEngine。 ViewEngines.Engines.Add(new MyCusyomViewEngine()); //Global.asax.cs – 2009-08-06 14:45:46
这些位置实际上是使用默认viewengine进行硬编码的。 而参数确实是视图的名称。总是指定视图的名称是最佳做法,因为您可以通过这种方式对其进行单元测试。 – 2009-08-06 14:56:02