1

私のモデルにはバージョン型のプロパティが含まれています。

public class Model
{
    public Version AppVersion { get; set; }
}

ビューで @Html.Editor を使用します。

@using (@Html.BeginForm()) {
    <div class="editor-field">
        @Html.EditorFor(model=>@model.AppVersion)
    </div>
}

次の HTML マークアップが生成されます。

<div class="editor-field">
        <div class="editor-label"><label for="AppVersion_Major">Major</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля Major должно быть число." data-val-required="Требуется поле Major." id="AppVersion_Major" name="AppVersion.Major" type="number" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.Major" data-valmsg-replace="true"></span></div>
<div class="editor-label"><label for="AppVersion_Minor">Minor</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля Minor должно быть число." data-val-required="Требуется поле Minor." id="AppVersion_Minor" name="AppVersion.Minor" type="number" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.Minor" data-valmsg-replace="true"></span></div>
<div class="editor-label"><label for="AppVersion_Build">Build</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля Build должно быть число." data-val-required="Требуется поле Build." id="AppVersion_Build" name="AppVersion.Build" type="number" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.Build" data-valmsg-replace="true"></span></div>
<div class="editor-label"><label for="AppVersion_Revision">Revision</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля Revision должно быть число." data-val-required="Требуется поле Revision." id="AppVersion_Revision" name="AppVersion.Revision" type="number" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.Revision" data-valmsg-replace="true"></span></div>
<div class="editor-label"><label for="AppVersion_MajorRevision">MajorRevision</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля MajorRevision должно быть число." data-val-required="Требуется поле MajorRevision." id="AppVersion_MajorRevision" name="AppVersion.MajorRevision" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.MajorRevision" data-valmsg-replace="true"></span></div>
<div class="editor-label"><label for="AppVersion_MinorRevision">MinorRevision</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-number="Значением поля MinorRevision должно быть число." data-val-required="Требуется поле MinorRevision." id="AppVersion_MinorRevision" name="AppVersion.MinorRevision" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="AppVersion.MinorRevision" data-valmsg-replace="true"></span></div>

しかし、コントローラーには常に AppVersion={0.0} があります。

[HttpPost]
public ActionResult Add(Model model)
{
    if (ModelState.IsValid)
    {
        Version ver = model.AppVersion;
    }
}
4

0 に答える 0