You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在2sxc的C# Razor代码中获取视图的Razor模板文件名

如何在C# Razor中通过ICmsView获取模板文件名(含路径)

环境信息

当前MyView(实现ICmsView接口)返回的信息如下:

MyView.Name:      FCTRL - Dark Card w Tawk JS API Experiments
MyView.Path:      /Portals/0/2sxc/Content/FCTRL

问题说明

  • 需求:获取当前视图对应的模板文件名(包含完整路径也可)
  • 现存问题:
    • 原配置预期通过MyView.Path获取,但后端仅返回视图文件夹根路径,且该属性已被弃用
    • 目前获取文件夹路径的正确方式是MyView.Folder.Url,但无法拿到模板文件本身的路径
    • 编辑视图的Angular UI中可见完整模板路径,但无法通过CmsView接口直接访问
    • 尝试过AsEntity(MyView).Get("Path")转换实体,但MyView无法转换为实体类型

解决方法

在C# Razor代码中,可通过ICmsView的Template属性直接获取模板文件的路径信息,常用属性如下:

  • 模板Web路径(含文件名):MyView.Template.Url —— 返回可通过Web访问的完整路径
  • 模板物理服务器路径(含文件名):MyView.Template.PhysicalPath —— 返回服务器本地的文件路径
  • 模板相对路径(含文件名):MyView.Template.Path —— 返回相对于视图根文件夹的路径

使用示例

@{
    // 获取模板的Web访问路径
    var templateWebUrl = MyView.Template.Url;
    // 获取模板在服务器上的物理路径
    var templatePhysicalPath = MyView.Template.PhysicalPath;
}

<div>
    <p>模板Web路径:@templateWebUrl</p>
    <p>模板物理路径:@templatePhysicalPath</p>
</div>

内容的提问来源于stack exchange,提问作者Jeremy Farrance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:22:07