2017-07-19 80 views
0

我需要的是一套由特定的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)" /> 
} 

回答

0

由(@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)" /> 
    } 
+0

,如果你想回答你自己的問題,這很好,但請提供該程序是如何解決的解釋工作問題。 –

+0

我編輯了我的答案,並提供瞭解釋此代碼如何解決問題的解釋,我希望這已經足夠了,謝謝 – Pasta