我使用了 this article 中描述的方法创建下拉菜单。
模型
public class IceCreamFlavor
{
public int Id { get; set; }
public string Name { get; set; }
}
View 模型
public class ViewModel
{
private readonly List<IceCreamFlavor> _flavors;
[Display(Name = "Favorite Flavor")]
public int SelectedFlavorId { get; set; }
public IEnumerable<SelectListItem> FlavorItems
{
get { return new SelectList(_flavors, "Id", "Name");}
}
}
View
@Html.LabelFor(m=>m.SelectedFlavorId)
@Html.DropDownListFor(m => m.SelectedFlavorId, Model.FlavorItems)
@Html.ValidationMessageFor(m=>m.SelectedFlavorId)
<input type="submit" value="Submit" />
这种方法效果很好。
现在我想在同一 View 上显示模型的属性。作为示例,假设我们具有以下属性。
public class IceCreamFlavor
{
public int Id { get; set; }
public string Name { get; set; }
public float Price { get; set; }
}
现在我需要在下拉列表下方显示价格
Price : 15.99
我怎样才能做到这一点?
最佳答案
我宁愿选择另一种解决方案,因为为每个选定的输入触发 ajax 是无用且耗时的。
使用正常电流
DropDownListFor
除了输出完整价目表以隐藏输入值。值例如:'10.0;12.0;...'
每个值都可以通过简单的 JavaScript 过程获取,选项索引作为您应该获取的值的标记。构建一个新的
MyDropDownListFor
这将作为当前的,而不是仅仅构建正常的<option>..
它还会向该 html 标记添加 price 或您希望它显示的任何其他参数。示例:Here Here Here
无论您采用何种解决方案,都必须结合支持简单的 JavaScript 方法,然后呈现已下载的选择和显示价格。
关于c# - .NET MVC 使用模型属性更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107757/