c#-将多个字段绑定到MVC 3视图模型的相同属性
作者:互联网
我目前正在尝试弄清楚如何将MVC 3视图中的多个字段绑定到1
视图模型上的属性,以及尝试实现此目标时的建议.
使用一个示例来说明准备某件事所需的分钟数(仅).
表单可能看起来像这样:
准备时间-小时:[1]分钟:[30]
并且提交的表单值需要转换为分钟,并绑定到ViewModel的PreparationTimeInMinutes属性.
ViewModel属性:
public short PreparationTimeInMinutes { get; set; }
并且View被强类型化为ViewModel,并且当前具有以下内容:
<div class="editor-label">
@Html.LabelFor(model => model.PreparationTimeInMinutes)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PreparationTimeInMinutes)
@Html.ValidationMessageFor(model => model.PreparationTimeInMinutes)
</div>
为了实现这一目标,我开始考虑以下几点.
>将PreparationTimeInMinutes属性更改为具有小时&的ViewModel.分钟
属性并为其创建编辑器并显示模板,以便
MVC3可以整理绑定和验证吗?
>使用javascript和一个隐藏字段进行准备.
>其他一些方法可以让您使用MVC模型绑定来执行此类操作吗?
有人对这种事情的最佳实践有任何建议吗?还是我离我远一点.
请告诉我.谢谢
解决方法:
您应该使用第一个选项.
这正是编辑器模板的用途.
如果需要,您可以创建一个自定义ModelBinder,将两个POSTed值绑定到一个数字(以及类似的编辑器模板),然后将属性应用于该属性以选择该ModelBinder.
但是,这可能会过大.
标签:c,asp-net-mvc-3 来源: https://codeday.me/bug/20191201/2081431.html