MVC Извлечение нескольких записей из представления в контроллере - PullRequest
0 голосов
/ 17 ноября 2011

это мой контроллер:

public ActionResult Create() {
            Number newNumber = new Number();
        return View(newNumber);
    }

и просмотр:

@model PhoneBook.Models.Number
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
<script src="../../Scripts/jQuery.AddNewNumber.js" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Contact.Id)
<fieldset>
<legend>Number</legend>
<div class="TargetElements">
    <div class="editor-label">
        @Html.LabelFor(model => model.PhoneNumber)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.PhoneNumber)
        @Html.ValidationMessageFor(model => model.PhoneNumber)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.NumberKind)
    </div>
    <div class="editor-field">
    @Html.DropDownListFor(model => model.NumberKind.Title, NumberKinds)
    </div>
</div>
<p>
    <input class="AddNew" value="Add New" type="button" /></p>
<p>
    <input type="submit" value="Create" />
</p>
</fieldset>
}

Нажатием кнопки AddNew (используйте jQuery AddNewNumber.js) новый ввод + DropDown, добавленный для формирования на стороне клиента. Но есть проблема в получении значений. Когда у меня есть один элемент ввода (включая input + DropDown), я могу получить значения, подобные приведенным ниже, в сообщении моего контроллера:

[HttpPost]
    public ActionResult Create(Number NewNumber, FormCollection collection) {
            db.Numbers.Add(NewNumber);
            db.SaveChanges();
            return RedirectToAction("Index")
}

Но когда есть несколько записей, как я могу получить значения и добавить их в базу данных?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Использовать по названию элемента следующим образом:

string[] PhoneNumbers = collection.GetValues("PhoneNumber");
1 голос
/ 17 ноября 2011

Вы хотите, чтобы все ваши входные элементы имели одинаковое имя.Тогда в вашем методе действия POST параметр будет List.Вот пример: Привязка модели к списку объектов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...