Форма MVC с PartialViewResult при отправке, не публикует данные в PartialViewResult - PullRequest
0 голосов
/ 17 января 2012

Я учу MVC и JQuery. Requirmeent => Есть "Категории". Каждая категория может иметь список «Задач». Пользователь должен иметь возможность прибегать к «Задачам» по своему усмотрению путем перетаскивания и сохранения в БД.

Форма, над которой я работаю, содержит следующее

  1. Список категорий, отображаемых в элементе. Когда пользователь выбирает элемент списка ajax-запрос сделан для получения списка «Задач»
  2. Список задач, отображаемых в списке.
  3. Кнопка для сохранения изменений

Я могу реализовать все функциональные возможности, включая отображение категорий, получение заданий и пересмотр. Но часть Сохранить не работает. Когда форма публикуется, я не вижу данных для Задач в FormCollection.

Вот HTML.

@using (Html.BeginForm("Settings", "Settings", FormMethod.Post, new { id = "formSettings" }))
{
<div style="width: 100%; background-color: Aqua; vertical-align: top">
    <div style="width: 50%; text-align: right; vertical-align: top; float: left; display: block;
        height: 300px;">
        <select id="listSettings"  name="listSettings" style="width:200px;height:280px;text-align:left;" size="@Model.Categories.Count()"  data-tasks="@Url.Action("GetTasks", "Settings", new { })">
            @foreach (string category in @Model.Categories)
            {
                <option title="category"  value="@category">@category</option>
            }
        </select>
    </div>
    <div id="taskListId" style="display: block; width: 30%; float: left; height: 300px;">
        This will be replaced
    </div>
</div>
<div style="text-align: center; width: 100%">
    <input type="submit" id="btnSubmit" title="Save" value="Save" />
</div>
} 

Выше <div id="taskListId".../> будет заменен ajax-вызовом на сервер. Вот частичный вид результата html

<div id="taskListId" style="display: block; width: 30%; float: left; height: 300px;">
    <ul id="sortable" style="height: 280px;">
        @foreach (string s in Model)
        {
            <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>@s</li>
        }
    </ul>
</div>

Когда форма отправлена, почему в FormCollection содержится всего 1 ключ "listSettings", а не "сортируемый"?

Пожалуйста, дайте мне знать, если я делаю что-то не так.

Спасибо, Рави.

1 Ответ

0 голосов
/ 22 января 2012

Я нашел способ сделать это.На самом деле форма сообщения не будет содержать <ul> данных.<ul> не имеет прикрепленного атрибута имени.поэтому я не найду в данных публикации формы.

Я решил проблему с помощью jquery, чтобы найти элементы <ul> и <li> и прикрепив их в качестве пары значения имени к данным публикации формы.Затем я разместил данные, используя ajax.

...