Отправка родителей и детей в бритву - PullRequest
2 голосов
/ 07 декабря 2011

Привет! Я пытаюсь представить родителей и детей. Я могу передать штраф Родителю, но не детям. Есть ли способ сделать это?

это мой код.

@model IECWeb.Models.CurrencyDay

using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
    <legend>CurrencyDay</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.CurrencyDate)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.CurrencyDate)
        @Html.ValidationMessageFor(model => model.CurrencyDate)
    </div>

    <p />

    <table>
        <tr>
            <th>Currency</th>
            <th>Rate</th>
        </tr>
        @foreach (var item in Model.Currency) {
            <tr>
                <td>
                    <div class="editor-field">
                        @Html.EditorFor(model => item.Name)
                        @Html.ValidationMessageFor(model => item.Name)
                    </div>
                </td>
                <td>
                    <div class="editor-field">
                        @Html.EditorFor(model => item.Rate)
                        @Html.ValidationMessageFor(model => item.Rate)
                    </div>
                </td>
            </tr>
        }
    </table>

    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>

Когда я отправляю, я получаю объект CurrencyDay, но не список Валюты

Спасибо sushiBite.

Ответы [ 2 ]

5 голосов
/ 07 декабря 2011

Я бы порекомендовал вам использовать шаблоны редакторов вместо написания циклов в ваших представлениях:

<table>
    <tr>
        <th>Currency</th>
        <th>Rate</th>
    </tr>
    @Html.EditorFor(x => x.Currency)
</table>

, а затем в соответствующем шаблоне редактора, который будет отображаться для каждого элемента коллекции валют (~/Views/Shared/EditorTemplates/CurrencyViewModel.cshtml):

@model CurrencyViewModel
<tr>
    <td>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
    </td>
    <td>
        <div class="editor-field">
            @Html.EditorFor(model => model.Rate)
            @Html.ValidationMessageFor(model => model.Rate)
        </div>
    </td>
</tr>

Обратите внимание, что важно имя и расположение шаблона редактора.По соглашению местоположение должно быть либо ~/Views/SomeController/EditorTemplates (если шаблон повторно используется между действиями контроллера), либо более глобально ~/Views/Shared/EditorTemplates.Имя шаблона редактора должно быть именем типа каждого элемента коллекции, для которой вы выполняете итерацию.

2 голосов
/ 07 декабря 2011

Пожалуйста, прочтите статью Фила Хаака о привязке модели к списку.

Привязка модели к списку

надеюсь, это поможет

...