Я просто взял пример демонстрационного диалога jquery (диалоговое окно модели)
и попытался включить его в мой проект asp.net MVC, и я заметил что-то странное.
Если у вас есть содержимое внутри тега div диалогового окна jquery ui, средство связывания модели по умолчанию не подхватывает его во время отправки на сервер, как если бы эти элементы были удалены из формы
полный код просмотра ниже. если вы видите внизу, есть раздел, где содержимое диалога:
<div id="dialog"
Проблема заключается в том, что в моей таблице внутри «диалогового окна div» также есть ряд входных данных, которые отображаются на мои обязательные поля объектов данных. когда я смотрю на мои действия контроллера во время отладки, все они становятся нулевыми после публикации.
Что может делать js-код jquery ui-диалога, который удалит его из связующего элемента модели по умолчанию "scope" при публикации, поскольку код находится внутри элементов формы?
Код Javascript:
<script type="text/javascript">
$(function() {
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 500,
width: 500,
modal: true,
buttons: {
'Create an account': function() {
HTML-код
<% using (Html.BeginForm("UpdateTester", "Applications", FormMethod.Post))
{%>
<table id="users" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header ">
<th>Name</th>
<th>Email </th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type='hidden' name='peopleUpdater.person[0].c' value="1" />
<input type='hidden' name='peopleUpdater.person[0].b.Id' value="1" />
<input type='hidden' name='peopleUpdater.person[0].a[0].Id' value="1" /> John Doe
<input type='hidden' name='peopleUpdater.person[0].name' value="joe" />
</td>
<td>
john.doe@example.com
<input name='peopleUpdater.person[0].email' type='hidden' value="email" />
</td>
<td>
Locations:
<%=Model.BusinessLocations.Length %><input type="button" value="Details" id="showDetails" />
</td>
</tr>
</tbody>
</table>
</div>
<input type="submit" id="Button1" class="ui-button ui-state-default ui-corner-all" />Submit
<div id="dialog" title="Create new user">
<%=ApplicationHTMLHelper.BuildTableLocations("aa", Model.Application.BusinessLocations, true, "peopleUpdater.person[0]")%>
</div>
<% } %>