Dotnetnuke 如何在2SXC中重命名通过ADAM上传的文件?

Dotnetnuke 如何在2SXC中重命名通过ADAM上传的文件?,dotnetnuke,2sxc,Dotnetnuke,2sxc,使用2SXC内容模块,我有一个简单的英雄内容类型和模板,其中包括标题和背景图像。我使用C Razor模板,当我的用户通过ADAM上传背景图像时,Razor模板通过内联CSS应用背景。大概是这样的: @if (Content.BackgroundImage != "") { <style type="text/css"> section.hero { background-image: url(@Content.BackgroundImage); } }

使用2SXC内容模块,我有一个简单的英雄内容类型和模板,其中包括标题和背景图像。我使用C Razor模板,当我的用户通过ADAM上传背景图像时,Razor模板通过内联CSS应用背景。大概是这样的:

@if (Content.BackgroundImage != "") {
   <style type="text/css">
    section.hero {
     background-image: url(@Content.BackgroundImage);
   }
}
问题是,如果用户上载的文件名包含空格和/或非法字符,则不会显示背景图像,因为浏览器不喜欢内联CSS中文件名中的空格


如何使ADAM上传的文件去掉空格并删除非法字符?

您必须对其进行url编码,就像用%20替换一样。使用或HttpUtility.UrlEncode或以下变体之一:

@HttpUtility.UrlEncode(Content.BackgroundImage).Replace("+", "%20").Replace("%2f","/")

根据iJungleBoy的建议,我使用了HttpUtility.URLEncode。但是它将空格替换为+,和/替换为%2f,所以我使用.Replace将+替换为%20,将%f替换为/来创建一个简单的URL。现在,它可以接受带有空格的图像。

此资源有帮助。使用这个,我最终制作了一些更适合我的示例的代码。