2015-09-21 5 views
0

Таким образом, у меня есть частичный вид, LET-s сказать:завершения заполнения частичного вида из родительского вида

@model myModel 
@{ 
Layout = null; 
} 

.... 
Html.BeginForm("action", "Controller", FormMethodPost) 
..... 
..... 
..... 
..... 
<input type="submit" value = "Go"/> 
} 

Внутри этого частичного вида я оказывающий второй частичный вид так что это будет:

@model myModel 
@{ 
Layout = null; 
} 

.... 
Html.BeginForm("action", "Controller", FormMethodPost) 
..... 
@{Html.RenderPartial("secondPartial");} 
..... 
..... 
<input type="submit" value = "Go"/> 
} 

второй частичный также представляет форму, но на этот раз с помощью Ajax, как так:

@model myModel 
@{ 
Layout = null; 
} 

.... 
Ajax.BeginForm("secondAction", "sameController", new AjaxOption { HttpMethod = "POST", InsertionMode=InsertionMode.Replace, UpdateTargetID = "thisPartialDivId"}) 
..... 
..... 
..... 
..... 
<input type="submit" value = "Go"/> 
} 

Но теперь, каждый раз, когда я представить второй пар он отправляет его в партер с остальными полями null, даже я специально сказал ему, какое действие подать, оно просто подходит к его родителям и представляет это.

Любые идеи? thx)

P.S. причина этого: второе представление представляет новое значение для свойства, а затем оно должно добавить это значение в раскрывающийся список в родительском представлении. Родитель создает объект.

Kinda решил это с добавлением AntiForgeryToken, но затем я получил еще одну ошибку, потому что у меня было 3 из этих родительских представлений (один на родительском и 1 на каждом частичном). Все еще ищут решение здесь. :)

ответ

0

Похоже, вы вложили эти формы. Это не будет работать. См. this question on the topic of nesting. Мое понимание спецификации заключается в том, что ваше объявление второй формы будет проигнорировано. Это также соответствует вашим результатам.

Трудно предложить альтернативу с таким небольшим пониманием вашей фактической цели. Тем не менее, мне кажется, что нет причин для гнездования этих форм, когда участвует AJAX. Вы должны перенести свою форму AJAX за пределы вашего определения родительской формы, чтобы получить желаемое поведение. Вы можете изменить элементы из «родительской» формы, когда возвращается AJAX.