首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >视图中的Mvc 5-2模型

视图中的Mvc 5-2模型
EN

Stack Overflow用户
提问于 2016-06-02 03:33:46
回答 2查看 141关注 0票数 0

我刚从MVC开始,我正在学习如何创建一个订单和订单细节项目。

我也有一个清单,其中包含所有的项目在那里,但我面临一些问题,试图从库存数据通过订单的细节。

如何将这两者结合在一起?@model InventoryTest.Models.Inventory.order和@model IEnumerable< InventoryTest.Models.Inventory.Inventories>在视图代码中?

我为代码的混乱结构表示歉意,因为我还在学习,但我确实希望有人能就我所面临的问题向我提供建议。

库存模型:

代码语言:javascript
运行
复制
public int InventoryID { get; set; }
public string ItemNo { get; set; }
public string Item { get; set; }
public int Quantity { get; set; }

订单模式:

代码语言:javascript
运行
复制
public int OrderID { get; set; }
public DateTime Date { get; set; }
public int EmployeeID { get; set; }
public int DepartmentID { get; set; }

 public IEnumerable<SelectListItem> GetEmployee()
{
    var query = db.Employees.Select(c => new SelectListItem
    {
        Value = c.EmployeeID.ToString(),
        Text = c.DisplayName,
    });
    return query.AsEnumerable();
}

 public IEnumerable<SelectListItem> GetDeptList()
{
    var query = db.Departments.Select(c => new SelectListItem
    {
        Value = c.DepartmentID.ToString(),
        Text = c.Description,
    });
    return query.AsEnumerable();
}

订单细节模型:

代码语言:javascript
运行
复制
public int OrderDetailID { get; set; }
public int Quantity { get; set; }
public int OrderID { get; set; }
public int InventoryID { get; set; }

在我的视图中,order create的代码如下:

代码语言:javascript
运行
复制
  @model InventoryTest.Models.Inventory.Order

@{
    ViewBag.Title = "Order Forms";
}

<h2>Order Forms</h2>


@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()


    <div class="form-horizontal">
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="row">
            <div class="col-sm-4">
                @Html.LabelFor(model => model.EmployeeID, htmlAttributes: new { @class = "control-label col-md-2" })

                <div class="col-md-offset-4">
                    @Html.ValidationMessageFor(model => model.EmployeeID, "", new { @class = "text-danger" })

                    @Html.DropDownListFor(m => m.EmployeeID, Model.GetEmployee(), "Please Select", new
               {
                   @style = "width: 200px;height:35px",
                   @class = "input-select",
                   @data_bv_notempty = "true",
                   @data_bv_message = "Please select project."
               })
                </div>
            </div>
            <div class="col-sm-4">
                @Html.LabelFor(model => model.Department, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-offset-4">
                    @Html.ValidationMessageFor(model => model.DepartmentID, "", new { @class = "text-danger" })

                    @Html.DropDownListFor(m => m.DepartmentID, Model.GetDeptList(), "Please Select", new
               {
                   @style = "width: 200px;height:35px",
                   @class = "input-select",
                   @data_bv_notempty = "true",
                   @data_bv_message = "Please select project."
               })
                </div>
            </div>
        </div>
    </div>

        <hr />
}
<br />

<h4>Item Listing</h4>

<table class="table table-hover">
    <tr>
        <th>S/N</th>
        <th>Item No.</th>
        <th>Item</th>
        <th>Quantity</th>
    </tr>


*//I want to use foreach to populate the data here*
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>

</table>
<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-02 03:47:18

创建视图模型类:

代码语言:javascript
运行
复制
public class OrderAndInventoryViewModel
{
    public Order OrderInfo { get; set; }
    public IEnumerable<Inventories> InventoryInfo { get; set; } 
}

在你看来,请使用:

代码语言:javascript
运行
复制
@model <your namespace goes here>.OrderAndInventoryViewModel

将适当的订单和库存信息分配到控制器中的OrderAndInventory对象中,并将其传递给视图。

票数 1
EN

Stack Overflow用户

发布于 2016-06-02 03:52:26

一种解决方案是创建一个新对象,将其命名为"OrderViewModel“。该对象可以包含您的订单和库存列表。然后把OrderViewModel传递到视图..。

代码语言:javascript
运行
复制
namespace InventoryTest.Models.Inventory {
    public class OrderViewModel {
        public Order order { get; set; }
        public IEnumerable<InventoryTest.Models.Inventory.Inventories> inventories { get; set; }
    }
}

那么视图顶部的@模型将是

代码语言:javascript
运行
复制
@model InventoryTest.Models.Inventory.OrderViewModel

在视图中,您可以访问EmployeeID作为..。

代码语言:javascript
运行
复制
Model.order.EmployeeID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37582174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档