我有一个类似于以下的模型类
public class UserViewModel
{
public UserViewModel()
{
UsersDet = new Dictionary<long, string>();
usrdat = new List<User>();
}
public Dictionary<long , string> UsersDet { get; set; }
public IEnumerable<User> usrdata { get; set; }
}
然后我试图在部分视图中获取这些模型值,如下面的
这个局部视图实际上是一个弹出窗口。
_UserView部分视图
@model Project.ViewModels.UserViewModel
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body" style="width: 530px;">
<div id="slider_view" style="display: block;">
<div class="flexslider">
<ul class="slides">
@foreach (var item in Model.UsersDet )
{
<li data-thumb="~/Upload_Images/A.jpg">
<img src="~/Upload_Images/A.jpg" data-imagedata="image001" />
<p class="flex-caption">Title</p>
</li>
}
</ul>
</div>
</div>
</div>
</div>
</div>
在这里,我看不到Popup中的A.jpg
图像,但是当我使用下面的图像时,我可以看到图像
_UserView部分视图
@model Project.ViewModels.UserViewModel
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body" style="width: 530px;">
<div id="slider_view" style="display: block;">
<div class="flexslider">
<ul class="slides">
@for (int i =0; i < 3 ; i ++)
{
<li data-thumb="~/Upload_Images/A.jpg">
<img src="~/Upload_Images/A.jpg" data-imagedata="image001" />
<p class="flex-caption">Title</p>
</li>
}
</ul>
</div>
</div>
</div>
</div>
</div>
这是将值绑定到上面的弹出窗口
的控制器方法 [HttpGet]
public PartialViewResult MethodName(int id)
{
try
{
IEnumerable<User> listofData = ..
UserViewModel listofimage = new UserViewModel();
if (listofData != null)
{
listofimage.usrdata = listofData;
foreach(var item in listofimage.usrdata)
{
var path = RenderImage(item.ImageValue, "UploadImagePath");
var fileResult = path as FilePathResult;
if (fileResult != null)
{
string imageurl = fileResult.FileName;
imageurl = imageurl.Replace(@"\\", @"\");
listofimage.UsersDet.Add(item.CaseID, imageurl);
}
}
}
return PartialView("_UserView", listofimages);
}
catch (Exception)
{
throw;
}
}
public ActionResult RenderImage(string imageid, string pathvalue)
{
try
{
var URL = System.Configuration.ConfigurationManager.AppSettings[pathvalue].ToString();
var path = Path.Combine(URL, imageid + ".jpg");
return base.File(path, "image/jpeg");
}
catch (Exception)
{
throw;
}
}
我的foreach
方法如何将元素填充为循环
答案 0 :(得分:0)
如果使用项目填充Model.UsersDet,则&lt; li>元素将被渲染。如果它们已渲染但您没有看到图像,则打开devtools,然后在“网络”选项卡中查找为每个图像发出的请求。如果请求有错误的响应,那么你根据返回的http状态修复它。
但没有调试项目,如果你说@for正在工作,但@foreach不是那么问题应该是Model.UsersDet是空的。