编程语言
首页 > 编程语言> > c#-将多个字段绑定到MVC 3视图模型的相同属性

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