x.AMOAResponsible, Model.AMOARes-6ren">
gpt4 book ai didi

c# - 如何在 asp.net mvc 中保护斜线并避免 "Failed to map the path"错误?

转载 作者:行者123 更新时间:2023-11-30 21:56:55 25 4
gpt4 key购买 nike

我在我的 ASP.NET MVC 项目的一个区域中有这个 razor html:

<td>
@Html.DisplayFor(x => x.AMOAResponsible, Model.AMOAResponsible ?? string.Empty)
</td>

当 AMOAResponsible 的值类似于“Lorem Ipsum”时,一切正常。但有时值“AMOAResponsible”包含斜杠(例如“LOREM/IPSUM”),然后我收到以下错误:

Failed to map the path '/Areas/Dashboard/Views/Psr/DisplayTemplates/LOREM/IPSUM.aspx'.

我不知道如何解决这个问题。我可以保护 "/" 吗?

最佳答案

您正在使用 this overload @HtmlDisplayFor() 的第二个参数是 templateName 并指定用于呈现属性的 DisplayTemplate 的名称

如果 AMOAResponsible 的值是(比如说)“Lorem”,该方法将搜索 /Views/yourControllerName/DisplayTemplates 文件夹并搜索名为 的文件>Lorem.cshtmlLorem.aspx,它不存在,所以它然后在 /Views/Shared/DisplayTemplates 中搜索,它也不存在,所以它使用默认的 DisplayTemplate(没有抛出异常 - 但只是浪费了一些处理时间)

但是,如果值为 Lorem/Ipsum,它将开始在 /Views/yourControllerName/Lorem/DisplayTemplates 中搜索,但由于该文件夹不存在,因此抛出异常。

我假设您相信 Model.AMOAResponsible ??如果 Model.AMOAResponsible 的值为 null,则 string.Empty 将呈现“空字符串”,但帮助器无论如何都会这样做(即不生成任何输出),因此只需将其删除即可。助手应该只是

@Html.DisplayFor(x => x.AMOAResponsible)

关于c# - 如何在 asp.net mvc 中保护斜线并避免 "Failed to map the path"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072050/

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