Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
Для работы с формами (Html.BeginForm) в MVC предлагается следующая схема: 1. [GET] ActionResult Add/Edit — отдать форму клиенту 2. [POST] ActionResult Add/Edit — получить данные от клиента и.. 2.1. В случае ошибки валидации отдать форму на повторное редактирование (показать ошибки, например, в ValidationSummary) 2.2. Если все ок, выполнить редирект, допустим, на Details Что касается Ajax форм (Ajax.BeginForm), все действия выполняются аналогично, только контроллер отдаёт PartialViews, и в 2.2. надо не выполнить редирект, а передать Json с результатом. Не нашёл как 2.2. релизовать для Ajax по фен-шую. Генерить PartialView в поле Json это совсем-совсем нехорошо. Пока наиболее кошерный вариант, передавать статус результата в кастомном HTTP заголовке (например, X-Form-Status), в зависимости от которого клиент рендерит HTML форму заново в контейнере (с ошибками валидации), или обрабатывает данные как Json с нужной логикой. Что скажете? Есть еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 15:36 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
Зачем тебе вся эта гавнологика и чем не устроил классический вариант Html.BeginForm? Или просто для самообразования? hVosttЧто касается Ajax форм (Ajax.BeginForm), все действия выполняются аналогично, только контроллер отдаёт PartialViews А в Html.BeginForm запрещено работать с частичными представлениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 16:41 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, Html.BeginForm это постбек, а Ajax.BeginForm это AJAX, разница существенная. Например, это может быть форма редактирования в гриде Master-Detail, нафига загружать форму редактирования в отдельной странице, если можно здесь же в модальном окошке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 17:36 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, Html.BeginForm это постбек О как! Откуда постбэки в ASP.NET MVC, друг? Ничего не путаешь? hVosttа Ajax.BeginForm это AJAX, разница существенная. Кто-то запрещает при Html.BeginForm использовать $.post / $.ajax? hVosttНапример, это может быть форма редактирования в гриде Master-Detail, нафига загружать форму редактирования в отдельной странице, если можно здесь же в модальном окошке. Я понимаю, изучение MVC тебе дается тяжело. Но зачем фантазировать тут, выдавая свой мусор из мыслей за чистую монету? Ведь проще спросить, когда чего-то не знаешь. Фантазировать не надо. Вот тебе рецепт: http://codearticles.ru/articles/2256 Используется Html.BeginForm, поднимается форма, которая хостится в PartialView, как ты хотел. Загружается это добро на лету по факту, через $('<div />').load(). Чем тебе не аякс? :) P.S. Про постбэк поржал. Это пять! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 17:44 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, Кастомные поделки меня сейчас совершенно не интересуют. Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо. Кроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 17:48 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
[hVostt]МСУ, Кастомные поделки меня сейчас совершенно не интересуют. Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо[/quot $.post это кастомная поделка? Ты в своем уме? [hVostt] Кроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт.[/quot] Садись, два. Этот пункт выполняется. Ты каким местом код читаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 18:30 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, Кастомные поделки меня сейчас совершенно не интересуют. Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо $.post это кастомная поделка? Ты в своем уме? hVosttКроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт. Садись, два. Этот пункт выполняется. Ты каким местом код читаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 18:32 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttДля работы с формами (Html.BeginForm) в MVC предлагается следующая схема: 1. [GET] ActionResult Add/Edit — отдать форму клиенту 2. [POST] ActionResult Add/Edit — получить данные от клиента и.. 2.1. В случае ошибки валидации отдать форму на повторное редактирование (показать ошибки, например, в ValidationSummary) 2.2. Если все ок, выполнить редирект, допустим, на Details Что касается Ajax форм (Ajax.BeginForm), все действия выполняются аналогично, только контроллер отдаёт PartialViews, и в 2.2. надо не выполнить редирект, а передать Json с результатом. Не нашёл как 2.2. релизовать для Ajax по фен-шую. Генерить PartialView в поле Json это совсем-совсем нехорошо. Пока наиболее кошерный вариант, передавать статус результата в кастомном HTTP заголовке (например, X-Form-Status), в зависимости от которого клиент рендерит HTML форму заново в контейнере (с ошибками валидации), или обрабатывает данные как Json с нужной логикой. Что скажете? Есть еще варианты? У Ajax.BeginForm есть OnSuccess - передаешь туда название javascript функции а в ней все что душе угодно Код: html 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 18:36 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, МСУ$.post это кастомная поделка? Ты в своем уме? Еще раз говорю, меня интересует решение на Ajax.BeginForm, а не твоя кастомная поделка на $.post — это именно кастомная поделка. при чем довольно кривая, поэтому обсуждать её не будем, я не спрашивал как вообще сделать AJAX, нужно решение на Ajax.BeginForm МСУСадись, два. Этот пункт выполняется. Ты каким местом код читаешь? хоть каким местом этот код не читай, проверка валидации на сервере у тебя не выполняется. твой серверный POST метод возвращает Json(true) Код: c# 1. 2. 3. 4. 5. за что отлупить бы линейкой такого кодера, да по рукам :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 18:52 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
evgen12345, я про этот onsuccess и говорю. он выполняется при любом ответе сервера с кодом 200. но там может быть либо невалидная форма, либо сообщение об успехе. вопрос в том, как в методе onsuccess отделить одно от другого лучше всего чтож все такие грамотные, чуть ли шатлы в космос не запускают на шарепоинт и динамикс под бдительным пассивным руководством майкрософ, а в такой задачке теряются... видимо сверхумище даёт в голову нехило и мешает думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 18:54 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttЕще раз говорю, меня интересует решение на Ajax.BeginForm Ты дурачком долго будешь прикидываться? Мне фиолетово, что тебя интересует. Я поправил твои неверные высказывания и спросил, почему не устраивает Html.BeginForm. Ты начал дальше нести какой-то бред про постбэки и аякс. Далее, ты сказал, что мой код не работает с валидацией, я снова тебя ткнул носом в тот факт, что ты не прав. А теперь ты начинаешь съезжать с темы, мол тебя ничего это ни интересует. Если начал дискуссию на обе темы, значит держи речь до конца, не увиливай и не съезжай с темы. hVostt$.post — это именно кастомная поделка. при чем довольно кривая, поэтому обсуждать её не будем Вот ты опять мелечшь языком и сразу же соскакиваешь. Готов аргументировать свой ответ, почему $.post - кривая поделка? hVosttМСУСадись, два. Этот пункт выполняется. Ты каким местом код читаешь? хоть каким местом этот код не читай, проверка валидации на сервере у тебя не выполняется. твой серверный POST метод возвращает Json(true) Во-первых, валидация происходит на клиенте, букварь в руки и изучай, что такое $("form").validate().form(). Во-вторых, кто тебе мешает на сервере валидировать? Тебя держат за руки и запрещают это делать? Итого, ты ляпнул: hVosttты просто тупо закрываешь форму после сабмита $(this).dialog("close"); Теперь ты осознал, что это не так? Еще раз, чтобы потом не было стыдно и чтобы потом не извинялся за своё гонево - валидация там есть. Точка. hVostt Код: c# 1. 2. 3. 4. 5. что отлупить бы линейкой такого кодера, да по рукам :) См. выше, я уже всё написал по этому поводу. То, что ты безудержно пытаешься хоть за что-то зацепиться, чтобы окончательно не утонуть. Для танкистов еще раз повторю, суть рецепта - показать, как работают диалоги в mvc, а не о том, нужно ли валидировать что-то на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:02 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, много слов и как обычно не по делу. клиентская валидация это хорошо, но не панация. кто у нас недавно тут чесал языком о том, что браузеро пользователя нельзя доверять? ты мне покажешь как вернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере ? или дальше будешь великого умника строить из себя??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:12 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, Для танкистов еще раз повторю, суть рецепта - показать, как работают диалоги в mvc, а не о том, нужно ли валидировать что-то на сервере. дубина ты. мне плевать на твои деалоги. если хотел показать какой ты грамотный и умеешь делать диалоги, то молодец, умеешь же, могёшь! возьми вон плюшко со стола, если дотянешься. если тебе на заданный вопрос плевать и те лишь бы чо нить сунуть своё не в попад, то ради бога блин. преждупреждай, что ты не отвечаешь на заданный вопрос, а так мелешь отсебятину, не имеющую к топику отношения. буду подписывать твои комменты вот таким перлом: ОХ НУ И МОЛОДЕЦ ЖЕ ТЫ МСУ! и буду обсуждать тему с адекватными людьми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:16 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttevgen12345, я про этот onsuccess и говорю. он выполняется при любом ответе сервера с кодом 200. но там может быть либо невалидная форма, либо сообщение об успехе. вопрос в том, как в методе onsuccess отделить одно от другого лучше всего чтож все такие грамотные, чуть ли шатлы в космос не запускают на шарепоинт и динамикс под бдительным пассивным руководством майкрософ, а в такой задачке теряются... видимо сверхумище даёт в голову нехило и мешает думать. Я не совсем понимаю что именно нужно - вот мой пример, который я мучил пару дней назад - тынц Посмотри на него и напиши какое тебе нужно поведение - может смогу помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:18 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
evgen12345, я сделал Изменить, получил через Ajax форму. прописал в поле Стоимость продукта, билеберду вместо цифр. форма ушла без вопросов что-то там засабмитилось. некатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:20 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, много слов и как обычно не по делу. Я тебе по делу уже всё сказал и показал. Теперь я пытаюсь выбить из тебя остальную дурь по поводу постбэков и валидации. hVosttклиентская валидация это хорошо, но не панация. кто у нас недавно тут чесал языком о том, что браузеро пользователя нельзя доверять? Ты идиотом долго будешь прикидываться? Суть рецепта не в том, чтобы научить валидировать на сервере. Поэтому приводится фейковый return Json(true). Если ты до сих пор этого не можешь понять, то бросай программировать, иди паси коров. hVosttты мне покажешь как вернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере ? или дальше будешь великого умника строить из себя??? Вот тут есть рецепт, который показывает, что нужно сделать на сервере для клиента для отработки клиентской валидации: http://codearticles.ru/articles/2291 hVosttдубина ты. мне плевать на твои деалоги. если хотел показать какой ты грамотный и умеешь делать диалоги, то молодец, умеешь же, могёшь! возьми вон плюшко со стола, если дотянешься. Дубину ты видишь в зеркале, двоешник. Иди постбэки пиши для mvc hVosttесли тебе на заданный вопрос плевать и те лишь бы чо нить сунуть своё не в попад, то ради бога блин. Десятый раз повторяю, умей задавай вопросы. А так получается, ты задаешь вопрос и тут же пишешь бред сивой кобылы. Собственно, я тебе и объясняю, что ты пишешь бред. Но ты сопротивляешься и еще больше начинаешь жечь. Это нормально? hVosttпреждупреждай, что ты не отвечаешь на заданный вопрос, а так мелешь отсебятину, не имеющую к топику отношения. буду подписывать твои комменты вот таким перлом: ОХ НУ И МОЛОДЕЦ ЖЕ ТЫ МСУ! и буду обсуждать тему с адекватными людьми. Я тебе уже дал все ответы. Только идиот вроде тебя не видит ответы, продолжает спорить и писать глупости. Акстись уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:25 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
поведение нужно следующее: на странице есть такой <div id="ajaxForma"></div> и Ajax.ActionLink, который при нажатии рендерит в этот див форму у формы есть OnSuccess, который должен сделать следующее: 1. если форма не прошла валидацию на сервере отрендерить пришедшую форму еще раз в диве 2. если форма прошла валидацию на сервере , в ответе прочитать из Json нужные данные (допустим присвоенный Id и Name) ну и для примера вывести это дело под дивом (или в диве, не важно...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:25 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, харе тупить. ты задачу не понял. или понял, но какую-то совсем другую, возможно это я виноват — не так объясняю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:30 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, а да, расскажи как нам что такое постбеки на самом деле? можешь дать линку истины в первой инстанции и почему это не применимо к ASP.NET MVC? я тоже хочу знать! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:32 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, харе тупить. ты задачу не понял. или понял, но какую-то совсем другую, возможно это я виноват — не так объясняю. То, что ты не умеешь объяснять - не для кого не секрет. Вот и evgen12345 тебя нихрена не понимает. Я тебе показал, как решить задачу с помощью Html.BeginForm без каких-либо телодвижений. Ты начал херню какую-то писать. Ну что ты за человек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:32 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, а да, расскажи как нам что такое постбеки на самом деле? можешь дать линку истины в первой инстанции и почему это не применимо к ASP.NET MVC? я тоже хочу знать! :) Открой для себя гугл. Мне порядком поднадоело учить талпайопа, который ничего не хочет понимать, спорит и пишет феерический бред. Из гугла ты узнаешь, что в ASP.NET MVC нет постбэков. Это для WinForms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:34 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУЭто для WinForms. WebForms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:34 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУ, ну твои примеры не решают задачу. забудь про клиенсткую валидацию. мы отправляем форму пусть хрен с тобой через $.post. в ответе либо форма на повторное редактирование (т.е. кусок html, который надо отрендерить за место старой формы), либо Json с новым айдишником допустим, не важно. что тут непонятного? Ajax.BeginForm эту задачу не решает, для него OnSuccess это любой ответ с кодом 200 — даже невалидная форма. что в принципе логично, но что делать коду, расположенному в OnSuccess? как ему понять что пришло? форма на повторное редактирование или успех? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:37 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
hVostt, Ок, сегодня вечером гляну, сейчас в кино убегаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:38 |
|
||
|
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
|
|||
|---|---|---|---|
|
#18+
МСУWebForms http://en.wikipedia.org/wiki/Postback ничего про вебформс не сказано. ни слова. ааааа, самому надо додумывать! эт ж по-твоему логично? )))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2013, 19:39 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38253809&tid=1358453]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 456ms |

| 0 / 0 |
