Диалоговое окно JQuery UI для действия контроллера ASP.Net MVC - PullRequest
3 голосов
/ 18 ноября 2009

У меня есть MVC-представление, которое содержит диалоговое окно JQuery UI, которое можно открыть и заполнить данными.

<div id="dialog">
.... Table of phone numbers
</div>
<div id="personData">
... Person model data
</div>

Я пытаюсь передать данные из диалогового окна пользовательского интерфейса JQuery вместе с остальными данными MVC View в действие контроллера.

public ActionResult Save(Person person, List<PhoneNumber> phoneNumbers)
{
}

В этом примере тип Person не является частью диалога и размещается нормально. Телефонные номера находятся в div диалогового окна JQuery UI и не публикуются.

Элементы в диалоге определены в представлении и могут быть видны в DOM, но по какой-то причине что-то мешает отправке данных вместе с остальными данными представления. Если я удаляю объявление .dialog () из div "dialog" (теперь div видно на форме), данные (phoneNumbers) будут публиковаться.

Итак, мой вопрос: как вы публикуете данные диалогового окна JQuery UI вместе с данными View из формы в действии контроллера? (Я знаю, как публиковать данные диалогового окна пользовательского интерфейса с помощью кнопки в диалоговом окне, но мне нужно публиковать их вместе с моим основным представлением из-за проблем состояния этих данных).

Ответы [ 2 ]

4 голосов
/ 18 ноября 2009

Скорее всего, диалоговое окно перемещает div за пределы формы, поэтому поля не отправляются. Вы можете просто связать поля со скрытыми за пределами div или увеличить диапазон формы.

2 голосов
/ 18 ноября 2009

Как и сказали стимулы, вам нужно будет поместить данные в некоторые поля формы, которую вы будете отправлять в действие.

Сделайте что-то подобное внутри функции щелчка диалога (используя jQuery .val () )

$("#formFieldName").val() = $("#dialogFieldName").val();

Повторите это для каждого поля.

После этого поля (возможно, скрытые) внутри вашей формы будут содержать данные при отправке формы.

...