page contents

c# – 关于MVC 4视图中ViewData的Foreach

本文讲述了c# – 关于MVC 4视图中ViewData的Foreach!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
attachments-2022-07-U1RrEq0562e09c57d5dd7.png
本文讲述了c# – 关于MVC 4视图中ViewData的Foreach!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
我遇到的问题是我从我的数据库返回一张照片记录,这在我的详细信息视图中工作正常.但是在控制器下的细节我也正在编译一个列表对象,我想在我的详细信息视图中显示它,因为它包含相关的其他照片.因此,在视图的底部,它应列出每个引用的照片名称.我正在使用galleria.Io照片查看器,我想将其插入其中.

当我尝试遍历列表中的每个项目时,我得到:

  1. {"Object reference not set to an instance of an object."}

PhotosController

  1. publicActionResultDetails(intID=0)
  2. {
  3. Photos photos = db.FindPhotoByID(ID);
  4. if(photos ==null)
  5. {
  6. returnhttpNotFound();
  7. }
  8.  
  9. List<Photos> photoList=GetimagesFromFilmID(8);
  10.  
  11. VIEwData["NumberOfImages"]= photoList.Count().ToString();
  12. VIEwData["PhotoList"]= photoList;
  13.  
  14. returnVIEw(photos);
  15. }
  16.  
  17. publicList<Photos>GetimagesFromFilmID(int filmID=8)
  18. {
  19.  
  20. List<Photos> photos;
  21.  
  22. photos =(from p in db.Photos
  23. where p.PhotoDescription=="8"
  24. select p).Take(filmID).ToList();
  25.  
  26. return photos;
  27. }

细节视图

  1. @modelTestingMVCQA.Models.Photos
  2. @*@modelIEnumerable<TestingMVCQA.Models.Photos>*@
  3. @{
  4. VIEwBag.Title="Details";
  5. }
  6.  
  7. <h2>Details</h2>
  8.  
  9. <fIEldset>
  10. <legend>Photos</legend>
  11.  
  12. <divclass="display-label">
  13. @HTML.displaynameFor(model => model.Photoname)
  14. </div>
  15. <divclass="display-fIEld">
  16. @HTML.displayFor(model => model.Photoname)
  17. </div>
  18.  
  19. <divclass="display-label">
  20. @HTML.displaynameFor(model => model.PhotoDescription)
  21. </div>
  22. <divclass="display-fIEld">
  23. @HTML.displayFor(model => model.PhotoDescription)
  24. </div>
  25.  
  26. <divclass="display-label">
  27. @HTML.displaynameFor(model => model.Photofilename)
  28. </div>
  29. <divclass="display-fIEld">
  30. @HTML.displayFor(model => model.Photofilename)
  31. </div>
  32.  
  33. <divclass="display-label">
  34. @HTML.displaynameFor(model => model.ImageMimeType)
  35. </div>
  36. <divclass="display-fIEld">
  37. @HTML.displayFor(model => model.ImageMimeType)
  38. </div>
  39.  
  40. <script src="@Url.Content("~/Scripts/jquery-1.7.1.Js")"></script>
  41. <script src="@Url.Content("~/Scripts/galleria-1.3.6.Js")"></script>
  42.  
  43. <style>
  44. .galleria{ wIDth:900px; height:500px; background:#000 }
  45. </style>
  46.  
  47. @if(Model.Photofile!=null){
  48. <divclass="galleria">
  49. <img src="@Url.Action("Getimage","Photos",new { ID = Model.PhotoID })" data-Title="My Title" data-description="My description"/>
  50. <img src="@Url.Action("Getimage",new { ID = 5 })"/>
  51. <img src="@Url.Action("Getimage",new { ID = 6 })"/>
  52. <img src="@Url.Action("Getimage",new { ID = 7 })"/>
  53. <img src="@Url.Action("Getimage",new { ID = 8 })"/>
  54. <img src="@Url.Action("Getimage",new { ID = 9 })"/>
  55. <img src="@Url.Action("Getimage",new { ID = 10 })"/>
  56. <img src="@Url.Action("Getimage",new { ID = 11 })"/>
  57. <img src="@Url.Action("Getimage",new { ID = 12 })"/>
  58. <img src="@Url.Action("Getimage",new { ID = 13 })"/>
  59. <img src="@Url.Action("Getimage",new { ID = 14 })"/>
  60. </div>
  61. }
  62.  
  63. <script>
  64. galleria.loadtheme(src ="@Url.Content("~/Scripts/galleria.classic.Js")");
  65. galleria.run('.galleria');
  66. </script>
  67.  
  68. </fIEldset>
  69.  
  70. <p>Your favorite fruit is:</p>@VIEwData["NumberOfImages"]
  71. <p>
  72. @foreach(var item inVIEwData["NumberOfImages"]asIEnumerable<TestingMVCQA.Models.Photos>)
  73. {
  74. }
  75. </p>
  76.  
  77. <p>
  78. @HTML.Actionlink("Edit","Edit",new{ID=Model.PhotoID})|
  79. @HTML.Actionlink("Back to List","Index")
  80. </p>

在索引视图中,我有:

  1. @modelIEnumerable<TestingMVCQA.Models.Photos>

这允许我使用foreach并且我理解为什么但是当我在详细信息视图中返回单个对象时,我对如何解决问题有点困惑.因此,当它全部工作时,我可以替换Getimage调用和foreach图像本身.

如果您需要任何其他代码或解释,请告诉我们.

解决方法

您在foreach循环中使用VIEwData [“NumberOfImages”]这是错误的.

你的foreach循环应如下所示: –

  1. @foreach(var item inVIEwData["PhotoList"]asIEnumerable<TestingMVCQA.Models.Photos>)
  2. {
  3. //@item.filename //instead .filename use property which you have used in your model class
  4. }

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2022-07-27 10:01
  • 阅读 ( 556 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章