我需要将硬编码的文件夹名称替换为特定docType属性值设置的名称,这是我的部分视图页面代码,
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
string folderPath = Server.MapPath("/media");
string[] files = Directory.GetFiles(folderPath + "/1039");
}
@foreach (string item in files){
<img src="/media/1039/@Path.GetFileName(item)" />
}
我已经尝试了以下内容,但我认为它缺少一些东西,
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
string folderPath = Server.MapPath("/media");
string[] files = Directory.GetFiles(folderPath + "/@Model.Content.GetPropertyValue("placeID")");
}
@foreach (string item in files){
<img src="/media/@Model.Content.GetPropertyValue("placeID")/@Path.GetFileName(item)" />
}
由 (@MrMarsRed( 解决,这是正确的代码, 他的回答如下:
您没有使用此字符串执行预期操作:
"/@Model.Content.GetPropertyValue("placeID")"
由于您位于 C# 代码块中的字符串内部,因此该@Model没有特殊含义(即,它实际上是这样解释的,而不是作为表达式进行计算(。你想要这样的东西:
string[] files = Directory.GetFiles(folderPath + "/" + Model.Content.GetPropertyValue("placeID"));
这是最终的代码,它运行良好
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
string folderPath = Server.MapPath("/media");
string[] files = Directory.GetFiles(folderPath + "/" + Model.Content.GetPropertyValue("placeID"));
}
@foreach (string item in files){
<img src="/media/@Model.Content.GetPropertyValue("placeID")/@Path.GetFileName(item)" />
}