代码之家  ›  专栏  ›  技术社区  ›  Łukasz W.

正在发送中的项目集合ASP.NET MVC公司

  •  3
  • Łukasz W.  · 技术社区  · 14 年前

    我的MVC项目中有两个类 Order Product .

    因为 产品 可多次订购 订单 可以有很多产品我有第三个实体 OrderedProduct

    为了更容易直观地查看此图片:

    Layout

    现在的问题是如何在我的MVC应用程序中实现这种行为。我应该构建一个结合 类别和列表 产品 上课?

    也是我的 主要问题 ,如何(以优雅的方式)在POST请求后在控制器中检索所选产品的完整列表或至少产品id?在这种情况下,如何指定我要发送的是一组ID?添加一个对象很简单,但整个集合呢?

    1 回复  |  直到 5 年前
        1
  •  2
  •   jwsample    14 年前

    所需的界面对我来说似乎有点混乱,但下面是如何处理这些事情。。适应你的愿望。我假设 OrderedProduct

    制造 Order List<OrderedProduct> 调用的属性 OrderedProducts :
    创建一个ViewModel为的小编辑器控件 订购产品 . 没有表单,只有一个绑定到product name属性的textbox/dropdown/whatever和一个绑定到product quantity的textbox。 重要

    给你的 订单 NewOrderedProduct 类型 订购产品 订单 查看do: <%=Html.EditorFor(m=>m.OrderedProducts)%> 这将为您提供一个可编辑的列表,列出订单中的当前项目。
    在那之后做: <%= Html.EditorFor(m=> m.NewOrderedProduct) %> 这是您可以添加新项目的地方。
    让[POST]动作采取一种 订单 .

    属性有效您可以将其添加到 订购产品 列出并重新显示。你可以用这种方式添加任意数量的内容,它们都将自动绑定。

    在表单中有一个单独的提交按钮用于提交订单。检查[POST]中是否存在该按钮的名称,并一次性提交所有内容。

    这将为您提供一个直接的HTML工作版本。如果你想的话,你可以从那里得到一个轴。

    编辑
    更新以反映 对象并更正post接受的类型