没有传递外键值,而是在视图中显示?

我有一个其中带有外键列的模型,对此外键列有疑问。

我的模型如下:

public partial class MaterialDetail
    {
        public MaterialDetail()
        {
            this.StockRecords = new HashSet<StockRecord>();
        }

    public int ID { get; set; }
    public int MaterialTypeId { get; set; }
    public string SerialNumber { get; set; }
    public string SerialNumberOne { get; set; }
    public int BillId { get; set; }
    public bool IsIssued { get; set; }
    public int RegisterId { get; set; }

    public virtual Bill Bill { get; set; }
    public virtual MaterialCategory MaterialCategory { get; set; }
    public virtual ICollection<StockRecord> StockRecords { get; set; }
    public virtual Register Register { get; set; }
}

怀疑与外键RegisterId有关。我有一个表单可以输入材料的详细信息,这些详细信息引用了表中的RegisterId。在视图中,我有一个RegisterId的隐藏类型,但是我没有在模型中传递它的值,但是当我使用inspect元素检查它时,它仍然显示在视图中。另外,当我在输入详细信息后提交表单时,RegisterId的值应到达控制器,因为它在浏览器中显示,但没有到达那里。

任何人都可以解释这种行为。

这两个动作的代码如下:

 public actionResult AddHardware(int? registerId)
    {
        try
        {
            if (registerId == null)
            {
                return RedirectToaction("All");
            }
            else
            {
                string registerName = db.Registers.Where(m => m.RegisterId == registerId).Select(m => m.RegisterName).SingleOrDefault();
                ViewBag.registerName = registerName;
                ViewBag.MaterialTypesDDl = db.MaterialCategories.OrderBy(o => o.ID).ToList();
                ViewBag.BillNumberDDL = db.Bills.OrderBy(o => o.ID).ToList();
                return View();
            }



        }
        catch (Exception)
        {

            throw;
        }
    }

,用于过帐表格的数据是:

[HttpPost]
    public actionResult AddHardware(MaterialDetail obj)
    {
        var result = new jsonmessage();
        try
        {
            obj.IsIssued = false;
            obj.RegisterId = obj.RegisterId;

            db.MaterialDetails.Add(obj);
            db.SaveChanges();

            //result.Message = "Register entry successfull";
            result.Status = true;


        }
        catch (Exception ex)
        {
            ErrorLogers.ErrorLog(ex);
            result.Message = "Application is unable to process your request";
            result.Status = false;
            throw;
        }
        return Json(result,JsonRequestBehavior.AllowGet);
    }
piggyjj 回答:没有传递外键值,而是在视图中显示?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3119687.html

大家都在问