使用明確表達
<img src="images/[email protected](i)" />
這會給你的輸出像
<img src="images/image01">
<img src="images/image02">
<img src="images/image03">
理想情況下,我會盡量避免使用這樣的循環,並在創建視圖圖像URL值。相反,我將有圖像集合在我的ViewModel
public class UserProfile
{
public string Name { set;get;}
public List<UserImage> Images {set;get;}
public UserProfile()
{
Images=new List<UserImage>();
}
}
public class UserImage
{
public string URL { set;get;}
public string Caption { set;get;}
}
這個視圖模型與圖像採集
public ActionResult ShowUser(int id)
{
var user=new UserProfile();
user.Name="SomeName";
//to do : get images from db and set instead of being hard coded
user.Images.Add(new UserImage { URL="someImge1.jpg"});
user.Images.Add(new UserImage { URL="someImge2.jpg"});
return View(user);
}
而在我們的強類型視圖退回到我的觀點,我們將顯示像,
@model UserProfile
<table>
foreach(var img in Model.Images)
{
<tr>
<td><img [email protected]" alt="@img.Caption" /></td>
</tr>
}
</table>
我們不在視圖中混合任何代碼。設置圖像url應該在你的Controller中完成。如果圖像位於Content文件夾中,則可以使用Url.Content
HTML幫助器方法獲取路徑。
謝謝布賴恩,但我得到以下錯誤:「@」在代碼塊的開頭無效 –
我認爲這可能是我必須去的方式。 –
@KevinUnderhill哪一行導致錯誤?我的語法可能有點偏離...不幸的是,除非使用列表或數組來存儲名稱或替代設計模式,否則沒有好的變量名稱生成功能。 –