Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 MVC-2个viewdata的比较_Javascript_Jquery_Asp.net Mvc 5_Html.textboxfor - Fatal编程技术网

Javascript MVC-2个viewdata的比较

Javascript MVC-2个viewdata的比较,javascript,jquery,asp.net-mvc-5,html.textboxfor,Javascript,Jquery,Asp.net Mvc 5,Html.textboxfor,我有两个viewdata,viewdata[“product”]&viewdata[“ProductRetailPriceList”]值分配给从数据库读取的控制器,如下所示: var product = db.ProductTbls.ToList(); List<SelectListItem> productlist = new List<SelectListItem>(); List<SelectListItem> ProductRetailP

我有两个viewdata,
viewdata[“product”]
&
viewdata[“ProductRetailPriceList”]值分配给从
数据库读取的控制器,如下所示:

 var product = db.ProductTbls.ToList();
   List<SelectListItem> productlist = new List<SelectListItem>();
   List<SelectListItem> ProductRetailPriceList = new List<SelectListItem>();

        foreach(ProductTbl item in product)
        {
            productlist.Add(new SelectListItem
                {
                    Text = item.ProductName,
                    Value = item.ProductID.ToString()
                }
                );

            ProductRetailPriceList.Add(new SelectListItem
                {
                    Text = item.RetailUnitRentPrice.ToString(),
                    Value = item.ProductID.ToString()

                }); 
ViewData["product"]  = productlist;
ViewData["ProductRetailPriceList"] = ProductRetailPriceList;
@Html.DropDownListFor(model => model.ProductNamevm, (IEnumerable<SelectListItem>)ViewData["product"], new { id = "productname" })
@Html.TextBoxFor(model => model.ProductPrice, new { id = "productprice" })
对于价格文本框,我创建了如下内容:

 var product = db.ProductTbls.ToList();
   List<SelectListItem> productlist = new List<SelectListItem>();
   List<SelectListItem> ProductRetailPriceList = new List<SelectListItem>();

        foreach(ProductTbl item in product)
        {
            productlist.Add(new SelectListItem
                {
                    Text = item.ProductName,
                    Value = item.ProductID.ToString()
                }
                );

            ProductRetailPriceList.Add(new SelectListItem
                {
                    Text = item.RetailUnitRentPrice.ToString(),
                    Value = item.ProductID.ToString()

                }); 
ViewData["product"]  = productlist;
ViewData["ProductRetailPriceList"] = ProductRetailPriceList;
@Html.DropDownListFor(model => model.ProductNamevm, (IEnumerable<SelectListItem>)ViewData["product"], new { id = "productname" })
@Html.TextBoxFor(model => model.ProductPrice, new { id = "productprice" })
我想编写一个javascript,允许我在更改产品名称的值时更改产品价格文本框的值
dropdownlist
到目前为止,我得到的信息如下:

 $("#productname").change(function ()
                {
                    getprice();
                })



                function getprice()
                {
                    var productname = $("#productname").val();
                    var clienttype = $("#clienttype").val();


                    if (clienttype  == "Retail")
                    {

                        foreach (productname == ViewData["ProductRetailPriceList"])
                        {
                            var x = ViewData["ProductRetailPriceList"];
                            $("#productprice").val(x);
                        }

                    }   
                }
仅供参考
ClientType
是一个
dropdownlist
我没有问题。 当我在浏览器中检查时,代码不会进入foreach内部。 有人可以指导我如何将ViewData[“ProductRetailPriceList”]与所选ViewData[“product”]进行比较,以便我可以将其分配给价格文本框。
谢谢。

首先
查看数据[“ProductRetailPriceList”]
不应是
IEnumerable
(您没有在下拉列表中使用它-它应该只是
产品ID
RetailUnitRentPrice
的集合)。然后需要将其转换为javascript数组-根据
ProductID
参考并查找价格,为什么要将其分配给文本框它应该只显示(用户不能编辑)好的,我明白了你关于IEnumerable的观点,只是想澄清一下,我将创建一个包含ProductID和RetailUnitRentPrice的ViewModel,然后将其分配给JavaScript中的数组。顺便说一句,客户要求允许用户为某个客户当场更改价格,因此我保持启用状态,当用户提交表单时,数据将被惰性地传递给不同的桌子