Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mvc5中显示从模型到级联下拉列表的外键值?_Javascript_C#_Json_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

Javascript 如何在mvc5中显示从模型到级联下拉列表的外键值?

Javascript 如何在mvc5中显示从模型到级联下拉列表的外键值?,javascript,c#,json,asp.net-mvc,asp.net-mvc-5,Javascript,C#,Json,Asp.net Mvc,Asp.net Mvc 5,我还是mvc5新手,对javascript知之甚少。我知道我的级联可以工作,但是我在显示部分遇到了问题。我想做的是有2个下拉列表。1包含所有客户名称,第2个包含其待处理交易的列表。基本上,第一个下拉列表将有客户名称,而第二个下拉列表将有视频标题。请检查我错在哪里的代码。为什么我不能显示视频标题。顺便说一句,我在我的交易中尝试了其他属性,我可以显示它们。这就是为什么我知道我的级联不是问题所在 模型 //Transaction Model TransactionID { get; set; } pu

我还是mvc5新手,对javascript知之甚少。我知道我的级联可以工作,但是我在显示部分遇到了问题。我想做的是有2个下拉列表。1包含所有客户名称,第2个包含其待处理交易的列表。基本上,第一个下拉列表将有客户名称,而第二个下拉列表将有视频标题。请检查我错在哪里的代码。为什么我不能显示视频标题。顺便说一句,我在我的交易中尝试了其他属性,我可以显示它们。这就是为什么我知道我的级联不是问题所在

模型

//Transaction Model
TransactionID { get; set; }
public int CustomerID { get; set; }
public virtual Customers CustomerName { get; set; }
public int VideoID { get; set; }
public virtual Videos Videos { get; set; }
public int Quantity { get; set; }
[ReadOnly(true)]
public DateTime? TransactionDate { get; set; }
[ReadOnly(true)]
public DateTime? DueDate { get; set; }
[ReadOnly(true)]
public Decimal Cost { get; set; }
[ReadOnly(true)]
public String ReturnStatus { get; set;}

//Customers Model
public int CustomerID { get; set; }
public string CustomerName { get; set; }
public string CustomerAddress { get; set; }
public string CustomerContact { get; set; }

//Video Model
public int VideoID { get; set; }
public string VideoTitle { get; set; }
public int CategoryID { get; set; }
public virtual Category VideoCategory { get; set; }
[Range(0,99)]
public int VideoIn { get; set; }
[Range(0,99)]
public int VideoOut { get; set; }
康罗尔

public ActionResult CustomerList()
{
   var customers = db.Customers.OrderBy(x => x.CustomerID).ToList();
    if (HttpContext.Request.IsAjaxRequest())
    {
        return Json(new SelectList(
                    customers,
                    "CustomerID",
                    "CustomerName"), JsonRequestBehavior.AllowGet
                    );
    }
    return View(customers);
}

public ActionResult Transact(int cusId)
{
    var transact = db.Transactions
                     .Where(x => x.CustomerID == cusId)
                     .Where(s => s.ReturnStatus == "FALSE").ToList();
    if (HttpContext.Request.IsAjaxRequest())
        return Json(new SelectList(
                        transact,
                        "TransactionID",
                        "VideoTitle"), JsonRequestBehavior.AllowGet
                    );
    return View(transact);
}

经过几个小时的试验,我发现了一个解决方案——一个错误。我所做的是在查询中添加了一个联接

var transact = db.Transactions
                        .Where(x => x.CustomerID == cusId)
                        .Where(s => s.ReturnStatus == "FALSE")
                        .Join(db.Videos,
                        v => v.VideoID,
                        t => t.VideoID,
                        (transaction, videos) => new { 
                        TransactionID = transaction.TransactionID,
                        VideoTitle = videos.VideoTitle }).ToList();

您是否正在获取值transact变量?您的
事务
模型甚至不包含名为
VideoTitle
的属性。您甚至还没有显示视图代码。并在
JsonResult
中返回一个匿名对象,而不是
SelectList
(将
SelectListItem
的额外值传递给客户端是毫无意义的。@LateshtClick.com yes bro。感谢您的回复。@StephenMuecke感谢您提供更多信息。