CSHTML自定义Url.Content助手实现参数文件导航功能诉求
解决自定义Url.Content助手的文件导航问题
要让自定义@Url.Content助手的contentPath参数具备原生方法的文件跳转功能,核心是给参数添加路径识别属性,让Razor编辑器识别该参数为内容文件路径。
解决方案
根据你使用的ASP.NET版本,给contentPath参数添加对应的属性:
1. ASP.NET Core 环境
引用Microsoft.AspNetCore.Mvc.Razor.Internal命名空间,给参数加上[RazorContentFilePath]属性:
using Microsoft.AspNetCore.Mvc.Razor.Internal; public static string? Content(this IUrlHelper helper, [RazorContentFilePath] string contentPath, ContentExtension? ext = null) { // 你的原有处理逻辑 return contentPath; }
2. ASP.NET MVC 环境
引用System.Web.Mvc命名空间,给参数加上[ContentFilePath]属性:
using System.Web.Mvc; public static string? Content(this UrlHelper helper, [ContentFilePath] string contentPath, ContentExtension? ext = null) { // 你的原有处理逻辑 return contentPath; }
原理说明
原生@Url.Content的参数之所以支持文件跳转,是因为其参数带有Razor编辑器可识别的路径标记属性。给自定义方法的参数添加对应属性后,编辑器会将该参数识别为内容文件路径,自动启用文件导航、路径提示等原生功能。
内容的提问来源于stack exchange,提问作者Bas
相关产品推荐
相关产品推荐

