我有一个名为 Bill 的 ViewModel,它有一个名为 Product 的模型列表,使用 Bill ViewModel 的 Index 视图有一个包含产品名称的 DropDown 和一个我想设置产品价格的文本框(位于产品中列表)到文本框中,具体取决于下拉列表中选择的产品。
以下是产品型号:
public class Product
{
public string ProductName { get; set; }
public decimal Price { get; set;
}
这是账单模型:
public class BillViewModel
{
public SelectList ProductList { get; set; }
public int ProductSelected { get; set; }
public List<Product> ListProducts { get; set; }
}
这是索引视图:
这是我用来更改下拉值的脚本,我使用产品列表中下拉列表中选择的值来获取产品价格,但它始终获取第一个呈现的值,当我更改时文本框不会更新值选择。
<script type="text/javascript">
$('#select').change(function () {
$('#priceTxt').val(@Model.ListProducts[@Model.ProductSelected].Price);
});
<fieldset>
<legend>BillViewModel</legend>
<div class="display-label">
@Html.Label("Product")
@Html.DropDownListFor(model => model.ProductSelected, Model.ProductList, "Select Product", new {id = "select"})
</div>
</fieldset>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<a href="#" class="btn btn-primary" data-dismiss="modal" id="submit">Save changes</a>
如果我没有使用正确的架构方法,请告诉我。