У меня есть 2 viewdata, ViewData["product"]
& ViewData["ProductRetailPriceList"] values
, назначенные при чтении контроллера с database
следующим образом:
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;
Я присваиваю значение ViewData["product"]
для dropdownlist
в представлении следующим образом:
@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);
}
}
}
FYI ClientType
- это dropdownlist
У меня нет проблем с.
Когда я проверяю в браузере код не идет внутри foreach.
Может ли кто-нибудь подсказать мне, как сравнить ViewData ["ProductRetailPriceList"] с выбранным ViewData ["product"], чтобы я мог назначить его текстовому полю цены.
Спасибо.