加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.Net MVC控制器 – 动作和视图映射元数据

发布时间:2020-12-16 09:23:48 所属栏目:asp.Net 来源:网络整理
导读:在我的ASP.net MVC应用程序中,运行ASPX视图引擎,我有一个具有多种操作方法的控制器.对于这些操作方法中的每一个,我注意到我可以分配多个视图,然后在控制器的操作方法中按名称调用每个视图. 我想知道这个映射数据存储在项目中的位置.我扫描了项目文件,发现这
在我的ASP.net MVC应用程序中,运行ASPX视图引擎,我有一个具有多种操作方法的控制器.对于这些操作方法中的每一个,我注意到我可以分配多个视图,然后在控制器的操作方法中按名称调用每个视图.

我想知道这个映射数据存储在项目中的位置.我扫描了项目文件,发现这些信息无处可寻.如何知道包含多个视图的大型项目在哪里可以找到特定操作的所有视图.我最初认为这将存储在由Visual Studio生成和维护的一些配置文件中.但事实似乎并非如此.那么这些数据存储在哪里呢?在具有多个视图的大型项目中,确定哪些文件确实需要以及哪些文件不是真的将是一场噩梦.

你对此有何看法?

解决方法

圣地亚哥是正确的,ASP.NET MVC是基于约定的,但是当控制器看起来像这样时,要进一步扩展它:

public class FooController : Controller
{
    public ActionResult Bar()
    {
        return View();
    }
}

按照惯例,视图引擎将在以下位置搜索名为Bar的视图:

~/Views/Foo
~/Views/Shared

通过添加新操作而不添加视图可以很容易地看到这一点,您将获得此信息异常屏幕:

The view 'Bar' or its master was not found or no view engine supports the searched 
locations. The following locations were searched:
    ~/Views/Foo/Bar.aspx
    ~/Views/Foo/Bar.ascx
    ~/Views/Shared/Bar.aspx
    ~/Views/Shared/Bar.ascx
    ~/Views/Foo/Bar.cshtml
    ~/Views/Foo/Bar.vbhtml
    ~/Views/Shared/Bar.cshtml
    ~/Views/Shared/Bar.vbhtml

同样,如果您返回View(“ViewNameHere”),它将在相同位置查找ViewNameHere.

要回答您的问题,即使项目可能有数百个视图和操作可以返回多个视图,除非您覆盖视图引擎的行为,否则所有视图都会根据其控制器进行分组或放在共享文件夹中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读