c# - .NET MVC 使用模型属性更新 View

标签 c# .net asp.net-mvc model-view-controller razor

我使用了 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" /> 

这种方法效果很好。

Result

现在我想在同一 View 上显示模型的属性。作为示例,假设我们具有以下属性。

public class IceCreamFlavor
{
    public int Id { get; set; }
    public string Name { get; set; }
    public float Price { get; set; }
}

现在我需要在下拉列表下方显示价格

Price : 15.99

我怎样才能做到这一点?

最佳答案

我宁愿选择另一种解决方案,因为为每个选定的输入触发 ajax 是无用且耗时的。

  1. 使用正常电流 DropDownListFor 除了输出完整价目表以隐藏输入值。值例如:'10.0;12.0;...'每个值都可以通过简单的 JavaScript 过程获取,选项索引作为您应该获取的值的标记。

  2. 构建一个新的 MyDropDownListFor这将作为当前的,而不是仅仅构建正常的 <option>..它还会向该 html 标记添加 price 或您希望它显示的任何其他参数。示例:Here Here Here

无论您采用何种解决方案,都必须结合支持简单的 JavaScript 方法,然后呈现已下载的选择和显示价格。

关于c# - .NET MVC 使用模型属性更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107757/

相关文章:

c# - 将报表设计器集成到 .NET 应用程序中的最佳方法是什么?

.net - 在 WPF 中拖动图像

javascript - 如何从 HttpResponseMessage 获取 jqxhr.responseText?

c# - 找不到路径 '/Views/Shared/Error.cshtml'

c# - 信号器/集线器和 jquery 脚本上的 404 错误

c# - 什么是在 C# 中获取字符串字数的 Surefire 方法

c# - 单声道可以制作解决方案文件(.sln)

javascript - Jquery 模态弹出对话框未加载内容

c# - Google Analytics 管理 Api 插入目标 : 403 Insufficient permission .net

c# - EntityFramework 匿名复合键属性名称冲突