<ul> <li><img src="~/Content/Images/AdTest1.jpg" /></li> <li><img src="~/Content/Images/AdTest2.jpg" /></li> <li><img src="~/Content/Images/AdTest3.jpg" /></li> <li><img src="~/Content/Images/AdTest4.jpg" /></li> <li><img src="~/Content/Images/AdTest5.jpg" /></li> <li><img src="~/Content/Images/AdTest6.jpg" /></li> <li><img src="~/Content/Images/AdTest7.jpg" /></li> </ul>
例如将上面的HTML中的src的值,用Asp.net MVC4自动从某文件夹中文件取得,根据文件夹下的文件数量自动生成li。请问各位高手应该怎样做,Model、Controller、View(Razor引擎)分别要怎么写才比较好!
//Controller public class PictureController : Controller { private static readonly String Folder = "images"; public ActionResult Default() { var result = new List<String>(); foreach (var file in Directory.GetFiles(Server.MapPath(Folder))) { result.Add(Path.Combine(Folder, Path.GetFileName(file))); } return View(result); } }
@model List<String> @{ ViewBag.Title = "Default"; } <h2>Default</h2> <ul> @foreach (var s in Model) { <li> <img src="@s" /></li> } </ul>
@model List<String>
感谢这位高手!基本上没有问题,但上面那句为什么会出现下面的警告。还请指教!
产生的HTML代码还自动生成了String元素!
警告 1 验证 (HTML5): 不支持元素“String”。
@时光刺客: 重新生成,关掉页面。再打开看看还有吗。
@写代码的小2B: 感谢!!重新生成后终于都好了。
@写代码的小2B: 开发工具提示说@model只允许有一个,有解决方案吗?
@时光刺客:
比如你现在页面需要 A ,B两个类的对象。那么定义类C 包含A,B。如下代码所示:
public class A { } public class B { } public class C { public A A { get; set; } public B B { get; set; } }
@写代码的小2B: 这个原理大概能明白,但能具体点吗?这样Controller中的ActionResult是不是要修改!是否要Model中做!
假设有类似下面一个由Ado.net实体数据模型自动生成的
1 public partial class ProductsInfo 2 { 3 public int ProductID { get; set; } 4 public string ProductType { get; set; } 5 public string Manufacturer { get; set; } 6 public string ProductName { get; set; } 7 public string Mode { get; set; } 8 public string OnSaleTime { get; set; } 9 public string PlaceOfOrigin { get; set; } 10 public int Quantity { get; set; } 11 public decimal Price { get; set; } 12 public string Discount { get; set; } 13 public string Promotion { get; set; } 14 public System.DateTime CreateTime { get; set; } 15 public System.DateTime ModifyTime { get; set; } 16 }
然后怎么结合
//Controller public class PictureController : Controller { private static readonly String Folder = "images"; public ActionResult Default() { var result = new List<String>(); foreach (var file in Directory.GetFiles(Server.MapPath(Folder))) { result.Add(Path.Combine(Folder, Path.GetFileName(file))); } return View(result); } }
mvc新手,希望高手指点!
@时光刺客:
这不是一目了然吗。
public class A { public ProductsInfo P { get; set; } public List<String> Array { get; set; } }