Столбец внешнего ключа показывает пустую ячейку после успешной отправки формы создания или редактирования - PullRequest
0 голосов
/ 11 сентября 2018

Моя проблема: я получаю нулевое значение поставщика (который является внешним ключом в таблице покупок), когда я успешно отправляю действие редактирования или создания покупки!

Мой вопрос: как получить значение внешнего ключа, отправленное втаблица вместо получения нулевого значения?

Вот мои модели:

 public class Purchase
{

    [Required(ErrorMessage = "Invoice No. must be uniqe!")]
    [Display(Name = "Invoice No.")]
    public string Id { get; set; }
    [Display(Name = "yyyy-MM-dd")]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    public DateTime date { get; set; }
    //[Display(Name = "Supplier")]
    //public int supplier_id { get; set; }
    [Display(Name = "Qty")]
    public decimal amount { get; set; }
    [Display(Name = "Discount")]
    public decimal? discount { get; set; }
    [Display(Name = "Total")]
    [Required]
    public decimal grand_total { get; set; }
    [Display(Name = "Paid?")]
    public bool is_paid { get; set; }
    [Display(Name = "Last update")]
    public DateTime? last_updated { get; set; }
    [Display(Name = "Description")]
    public string description { get; set; }


    public virtual Supplier Supplier { get; set; }
    public virtual ICollection<PurchaseProduct> PurchaseProducts { get; set; }
}



public class Supplier
{
    public Supplier()
    {
        this.address = "N/A";
    }
    public int ID { get; set; }

    [Required]
    [StringLength(50, ErrorMessage = "Only 50 characters allowed!")]
    public string name { get; set; }

    public string address { get; set; }
    public string contact { get; set; }
    public string description { get; set; }

    public virtual ICollection<Purchase> Purchases { get; set; }
}

Все поставщики, извлеченные из таблицы поставщиков для просмотра покупок в словаре Viewbag в виде выпадающего списка

Вотмое действие создания:

  public ActionResult Create()
{
    //var model = db.Suppliers.FirstOrDefault();
    ViewBag.MyHeaders2 = new SelectList(db.Suppliers, "ID", "name");
    return View();
}

// POST: Purchases/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "id,date,supplier_id,amount,discount,grand_total,is_paid,last_updated,description")] Purchase purchase)
{
    if (ModelState.IsValid)
    {
        db.Purchases.Add(purchase);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(purchase);
}

и вот раскрывающийся список в моем представлении создания:

@model PointOfSales.Models.Purchase
        <div class="form-group">
            @Html.LabelFor(model => model.Supplier, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.Supplier, (SelectList)ViewBag.MyHeaders2, htmlAttributes: new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.Supplier, "", new { @class = "text-danger" })
            </div>
        </div>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...