MVC多表一种模型

迈克尔·麦卡比

我对来自aspx世界的MVC的理解感到困难。

我有一个名为的模型CustomerGarment这有一件衣服Order和一件Customer衣服。

public class CustomerGarment
{
    public int CustomerGarmentId { get; set; }

    public virtual Customer Customer { get; set; }

    public virtual Order Order { get; set; }

    public virtual GarmentJacket GarmentJacket { get; set; }
    public virtual GarmentShirt GarmentShirt { get; set; }
}

我有一种获取和发布的方法。页面加载后,它将创建一个新CustomerGarment实例并查询数据库以填充Customer和Order变量。然后,我使用查看包在屏幕上显示GarmentJackets和GarmentShirts的列表

然后,页面视图和使用视图,我可以完美地访问模型。放下Viewbag内容的负载,我可以使用我通过的模型访问所有Customer和Order变量。

然后我遇到的问题是当我使用HttpPost时。该模型不会随我传递给它的信息一起传回。

    public ActionResult AddGarments(int orderId, int customerId)
    {
        CustomerGarment cg = new CustomerGarment();
        cg.Order = (from a in db.Orders where a.OrderId == orderId select a).FirstOrDefault();
        cg.Customer = (from a in db.Customers where a.CustomerId == customerId select a).FirstOrDefault();

        var jackets = from a in db.GarmentJackets orderby a.Type, a.SleeveLengthInches, a.ChestSizeInches select a;
        var shirts= from a in db.GarmentKilts orderby a.PrimarySize, a.DropLength select a;
        ViewBag.GarmentJacket = new SelectList(jackets, "GarmentJacketId", "GarmentJacketId");
        ViewBag.GarmentShirt = new SelectList(shirts, "GarmentShirtId", "GarmentShirtId");

        return View(cg);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult AddGarments(CustomerGarment cg)
    {
        // Here, I do not have the customer info for example
        db.CustomerGarments.Add(cg);
        db.SaveChanges();
        return RedirectToAction("Index");

        return View(cg);
    }

这是我的看法

@Html.HiddenFor(model => model.Order.OrderId)
    @Html.HiddenFor(model => model.Order.CustomerId)

    <div class="display-field">
        @Html.DisplayFor(model => model.Customer.Name)
    </div>


    <div class="editor-label">
        @Html.LabelFor(model => model.GarmentJacket, "Jacket")
    </div>
    <div class="editor-field">
        @Html.DropDownListFor(m => m.GarmentJacket, (SelectList)ViewBag.GarmentJacket, new {style="width:312px;height:30px;margin-top:2px;margin-bottom:5px"})
    </div>

编辑

我的服装外套型号

public class GarmentJacket : Garment
{
    public int GarmentJacketId { get; set; }

    [Required]
    public string Type { get; set; }

    [Required]
    [Display(Name = "Chest Size")]
    public int ChestSizeInches { get; set; }

    [Required]
    [Display(Name = "Sleeve Length")]
    public int SleeveLengthInches { get; set; }
 }

public class Garment
{
    [DataType(DataType.Date)]
    public DateTime? DateRetired { get; set; }

    [Required]
    public string Barcode { get; set; }

    [Required]
    public bool Adults { get; set; }
}
阿塔拉瓦蒂

在CustomerGarment类中,您应该具有:

public class CustomerGarment
{
    public int CustomerGarmentId { get; set; }
    public int CustomerId { get; set; }
    public int OrderId { get; set; }
    public int GarmentJacketId { get; set; }
    public int GarmentShirtId { get; set; }

    public virtual Customer Customer { get; set; }
    public virtual Order Order { get; set; }
    public virtual GarmentJacket GarmentJacket { get; set; }
    public virtual GarmentShirt GarmentShirt { get; set; }
}

然后,在您的视图中,您的DropDownList将如下所示:

@Html.DropDownListFor(m => m.GarmentJacketId, (SelectList)ViewBag.GarmentJacket, new {style="width:312px;height:30px;margin-top:2px;margin-bottom:5px"})

您的DropDownList仅发布一个值,即GarmentJacketId。您不能将该ID绑定到整个GarmentJacket类。

顺便说一句,您还需要用以下内容替换隐藏的输入:

@Html.HiddenFor(model => model.OrderId)
@Html.HiddenFor(model => model.CustomerId)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC多表一种模型

来自分类Dev

一种模型不可访问,一种模型

来自分类Dev

一种模型的不同REST URL

来自分类Dev

一种更新多个模型的表格

来自分类Dev

ASP Mvc一种方法模型属性,即仅来自客户端

来自分类Dev

Joomla-用于组件的MVC-一种视图的多种模型

来自分类Dev

将值从一种模型传递到另一种模型的形式

来自分类Dev

两种模型的一种关系

来自分类Dev

两种模型的一种关系

来自分类Dev

Rails:从一种模型到另一种模型的两种关系(别名)

来自分类Dev

以一种html形式处理多种模型形式

来自分类Dev

cakephp:使用一种形式保存到多个模型

来自分类Dev

Sailsjs覆盖一种模型的蓝图方法

来自分类Dev

以一种形式编辑两个模型

来自分类Dev

春季:一种JPA模型,许多JSON表示形式

来自分类Dev

cakephp:使用一种形式保存到多个模型

来自分类Dev

Django:一种模型多步骤表单

来自分类Dev

Sailsjs覆盖一种模型的蓝图方法

来自分类Dev

从模型到视图的绑定的一种方法

来自分类Dev

Yii2。一种形式的多个模型项

来自分类Dev

Auth 和 User Django 的一种用户模型

来自分类Dev

骨干:设置服务器从一种模型到另一种模型的响应

来自分类Dev

使用newdata进行增强只能用于一种模型,而不能用于另一种模型

来自分类Dev

无法将外键从一种模型迁移到另一种模型

来自分类Dev

将字段从一种模型继承到另一种模型-Odoo v9社区

来自分类Dev

以一种形式MVC4上载多个文件

来自分类Dev

Ruby on Rails:使用一种表单和一种提交方式为多个模型创建记录

来自分类Dev

Rails:一种以多对多关系从另一种模型收集数据的有效方法

来自分类Dev

Rails-一种形式到两种模型

Related 相关文章

热门标签

归档