Javascript MVC-2个viewdata的比较
我有两个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[“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中的数组。顺便说一句,客户要求允许用户为某个客户当场更改价格,因此我保持启用状态,当用户提交表单时,数据将被惰性地传递给不同的桌子