4

問題

可変量の値を持つフォームを表示したいと考えています。ただし、各フォーム項目には、関連付けられた一種のキーが必要です。たとえば、フォームは名前、ユーザー名、および職業フィールドを生成します。フォームが送信されたときに、レシーバー メソッドがどのアイテムが何であるかを知ることができるように、キーも生成する必要があります。

試みられた解決策

現在、FieldItem が String のクラス変数を 1 つ持つ単なるクラスである FieldItems のリストがあります。フォームに入力すると解決策は機能しますが、送信時にリストが返され、どの値がどのキーに属しているかわかりません。辞書を使用することを考えていましたが、これがかみそりでどのように達成されるかわかりません。

モデルを見る

public class BuildReportViewModel
{
    public IList<BuildReportFieldItemViewModel> Fields { get; set; }
}
public class BuildReportFieldItemViewModel
{
    public string Field { get; set; }
}

BuildReportFieldItemViewModel のエディター

@model BuildReportFieldItemViewModel

<div class="editor-label">
    <label for="@Model.Field">@Model.Field</label>
</div>
<div class="editor-field">
    <input type="text" name="@Model.Field">
</div>
4

1 に答える 1

4

非表示のキー フィールドを使用してみてください

モデルを見る

public class BuildReportViewModel
{
    public IList<BuildReportFieldItemViewModel> Fields { get; set; }
}
public class BuildReportFieldItemViewModel
{
    public string Field;
    public string Key;
}

BuildReportFieldItemViewModel のエディター

@model BuildReportFieldItemViewModel

<div class="editor-label">
    <label for="@Model.Field">@Model.Field</label>
</div>
<div class="editor-field">

    @Html.TextBoxFor(x => x.Field)
    @Html.Hidden(Model.Key, "key_value");
</div>
于 2012-06-07T15:36:24.063 に答える