如何从控制器在MVC项目的ListView中添加项
本文关键字:ListView 添加 项目 MVC 控制器 | 更新日期: 2023-09-27 18:20:00
我看过很多网站,它们显示了实现这一目标的方法:
<ul>
@foreach (var customer in Model.Customer)
{
<li>@customer</li>
}
</ul>
我试图实现的是一个列表视图,它从XML文件向其中添加数据。
我在一个windows窗体上做了同样的事情,它后面的代码看起来像:
XElement xRoot = ManagerHelper.XMLManager().LoadOrderXML();
var ordermodel = new OrderModel(xRoot).orders.List;
lstbxClientNameNo.Items.Clear();
foreach (var order in ordermodel)
{
lstbxClientNameNo.Items.Add(string.Format("{1} - {0}",
order.clientName, order.orderNumber));
}
然而,有人能指导我在MVC项目上做同样/类似的事情吗?在MVC项目中,我可以从视图中的模型中提取数据。
我已经将模型从windows窗体复制到MVC,并且我希望使用相同的数据。我之所以在MVC上构建同样的应用程序,是因为我正在努力学习MVC及其工作原理。
我的模型看起来像:
public XElement LoadOrderXML()
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Environment.GetFolderPath(MYFORLDERPATH));
XElement xRoot = XElement.Parse(xmldoc.InnerXml);
return xRoot;
public class OrderModel
{
public Orders orders;
public OrderModel(XElement xOrder)
{
orders = new Orders(xOrder);
}
public class Order
{
public string orderNumber, clientName;
public decimal totalOrderPrice;
public Products products;
public Order()
{
}
public Order(XElement xOrder)
{
XElement xClientNumber = xOrder.Element("OrderNumber");
XElement xClientName = xOrder.Element("ClientName");
XElement xTotalOrderPrice = xOrder.Element("TotalOrderPrice");
XElement xProduct = xOrder.Element("Products");
if (xClientNumber == null) return;
orderNumber = xClientNumber.Value;
clientName = xClientName.Value;
totalOrderPrice = decimal.Parse(xTotalOrderPrice.Value);
products = new Products(xProduct);
}
public XElement ToXML()
{
var xOrder = new XElement("Order");
var xClientNumber = new XElement("OrderNumber", orderNumber);
var xClientName = new XElement("ClientName", clientName);
var xTotalOrderPrice = new XElement("TotalOrderPrice",
totalOrderPrice);
var xProducts = new XElement("Products", products);
xOrder.Add(xClientNumber);
xOrder.Add(xClientName);
xOrder.Add(xTotalOrderPrice);
xOrder.Add(xProducts);
return xOrder;
}
}
public class Orders
{
private readonly List<Order> _list;
public List<Order> List { get { return _list; } }
public Orders(XElement xAddresses)
{
_list = new List<Order>();
var xProductList = xAddresses.Descendants().ToList();
foreach (XElement ele2 in xAddresses.Descendants("Order"))
{
_list.Add(new Order(ele2));
}
}
}
根据您的评论和代码,我认为您正在寻找的是:
<ul>
@foreach (Order order in Model.orders.List)
{
<li>@order.clientName - @order.orderNumber</li>
}
</ul>
这假设您正在发送一个OrderModel
对象作为视图模型:
public ActionResult MyOrderAction()
{
//get the XML
XElement xmlData = ReadTheXmlData();
//get the model
OrderModel model = new OrderModel(xmlData);
return View(model);
}