gpt4 book ai didi

asp.net-mvc-3 - 为什么 MVC View 需要存在于 View 目录中才能工作?

转载 作者:行者123 更新时间:2023-12-04 22:36:52 25 4
gpt4 key购买 nike

我一直在写一个 cms,其中 MVC 被用作生成页面的主要引擎。

我进展顺利,但希望能够为每个站点创建一个独特的 Razor 模板,如果需要的话,可能每个 View 。

我的规则是每个项目都必须有一个与 url 链接的唯一代码。

每个项目站点的 Assets 以​​位置与项目相关的方式存储。

因此,与项目 C0001 关联的 Assets 将存储在 assets\C0001\ 中,对于 C0002:assets\C0002\ 等。

为了保持整洁,我想做的是将与位于 assets\[ProjectCode] 位置的项目相关联的 razor 模板也放在一起,但问题是我收到了关于 ViewBag not existing in context 的错误。

所以这行不通:

Layout = string.Concat("~/assets/",ViewBag.ProjectNumber,"/_Layout.cshtml");

以下将呈现页面:
Layout = string.Concat("~/Views/Shared/_",ViewBag.ProjectNumber,"Layout.cshtml");

我猜第一个布局没有呈现,因为它在已知的 View 搜索区域之外?但是当我告诉它文件在哪里时,我看不出问题是什么?

我很高兴使用示例 2 中的代码工作,但可能意味着在相当数量的项目站点之后,共享 View 目录将变得非常繁忙。

只是想知道为什么 View 需要存在于 Views 目录中?

最佳答案

您需要复制位于 Views 目录中的 web.config 并将副本放入 Assets 目录中。由于您需要为布局提供完整路径,这不是搜索路径问题,因此需要 web.config 中的信息来正确初始化 View 。

关于asp.net-mvc-3 - 为什么 MVC View 需要存在于 View 目录中才能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com