ASP .NET MVC, неизвестная ошибка времени выполнения в IE (вложенные формы) - PullRequest
0 голосов
/ 15 декабря 2009

У меня есть вид, который выглядит примерно так:

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "someDiv", HttpMethod = "Post"))
   {%>

 <%= Ajax.ActionLink("Add new", "AddNewItem", new AjaxOptions { UpdateTargetId = "divAddNewItem", HttpMethod = "Get" })%>

<div id="divAddNewItem">
</div>

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

<% } %>

Действие AddNewItem возвращает частичное представление, которое отображается в divAddNewItem, код представления AddNewItem выглядит следующим образом:

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "divAddNewItem", HttpMethod = "Post"))
   {%>

       <input type="submit" value="Add" />
<% } %>

в этом случае после нажатия кнопки «Добавить новый» IE выдаст исключение (неизвестная ошибка времени выполнения), в то время как chrome и firefox будут работать. Я провел некоторое исследование, и похоже, что проблема связана с вложенными тегами форм.

был бы рад выслушать любые возможные подсказки или советы по решению этой проблемы.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

Вложенные формы недопустимы в HTML. Вы не можете сделать это. IE имеет тенденцию реагировать хуже, чем Firefox, но вы не должны делать это ни в одном браузере.

В одном документе может быть несколько форм, но элемент FORM не может быть вложенным.

1 голос
/ 15 декабря 2009

Я предпочитаю, в подобных случаях, сделать div, который выглядит как форма (или даже диалоговое окно в стиле DHTML), и связать сообщение ajax этих элементов формы с событием onclick кнопки. Это, очевидно, намного больше работы, но это избавило меня от многих пробок.

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