powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
53 сообщений из 53, показаны все 3 страниц
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253685
Фотография 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 с нужной логикой.

Что скажете? Есть еще варианты?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253724
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тебе вся эта гавнологика и чем не устроил классический вариант Html.BeginForm? Или просто для самообразования?

hVosttЧто касается Ajax форм (Ajax.BeginForm), все действия выполняются аналогично, только контроллер отдаёт PartialViews
А в Html.BeginForm запрещено работать с частичными представлениями?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253775
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Html.BeginForm это постбек, а Ajax.BeginForm это AJAX, разница существенная. Например, это может быть форма редактирования в гриде Master-Detail, нафига загружать форму редактирования в отдельной странице, если можно здесь же в модальном окошке.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253783
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Про постбэк поржал. Это пять!
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253790
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Кастомные поделки меня сейчас совершенно не интересуют.
Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо.

Кроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253809
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[hVostt]МСУ,

Кастомные поделки меня сейчас совершенно не интересуют.
Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо[/quot
$.post это кастомная поделка? Ты в своем уме?

[hVostt]
Кроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт.[/quot]
Садись, два. Этот пункт выполняется. Ты каким местом код читаешь?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253810
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ,

Кастомные поделки меня сейчас совершенно не интересуют.
Если нечего сказать именно про Ajax.BeginHtml, то лучше не надо
$.post это кастомная поделка? Ты в своем уме?

hVosttКроме того в твоем решении, совершенно не обрабатывается ситуация в приведенном мною алгоритме под пунктом 2.1, ты просто тупо закрываешь форму после сабмита $(this).dialog("close"); этого делать не стоит, если валидация на сервере не прошла. в общем, не в кассу совершенно, ни комментарии, ни рецепт.
Садись, два. Этот пункт выполняется. Ты каким местом код читаешь?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253816
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
@Ajax.BeginForm(...., new AjaxOptions { OnSuccess = "loadDetails" })
{
...
}

<script>
     function loadDetails() { $('#linkToDetails').click(); }
</script>
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253823
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

МСУ$.post это кастомная поделка? Ты в своем уме?

Еще раз говорю, меня интересует решение на Ajax.BeginForm, а не твоя кастомная поделка на $.post — это именно кастомная поделка. при чем довольно кривая, поэтому обсуждать её не будем, я не спрашивал как вообще сделать AJAX, нужно решение на Ajax.BeginForm



МСУСадись, два. Этот пункт выполняется. Ты каким местом код читаешь?

хоть каким местом этот код не читай, проверка валидации на сервере у тебя не выполняется. твой серверный POST метод возвращает Json(true)

Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public JsonResult Save(string Name)
{
    return Json(true);
}



за что отлупить бы линейкой такого кодера, да по рукам :)
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253825
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345,

я про этот onsuccess и говорю. он выполняется при любом ответе сервера с кодом 200. но там может быть либо невалидная форма, либо сообщение об успехе. вопрос в том, как в методе onsuccess отделить одно от другого лучше всего

чтож все такие грамотные, чуть ли шатлы в космос не запускают на шарепоинт и динамикс под бдительным пассивным руководством майкрософ, а в такой задачке теряются... видимо сверхумище даёт в голову нехило и мешает думать.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253827
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
[HttpPost]
public JsonResult Save(string Name)
{
    return Json(true);
}


что отлупить бы линейкой такого кодера, да по рукам :)
См. выше, я уже всё написал по этому поводу. То, что ты безудержно пытаешься хоть за что-то зацепиться, чтобы окончательно не утонуть. Для танкистов еще раз повторю, суть рецепта - показать, как работают диалоги в mvc, а не о том, нужно ли валидировать что-то на сервере.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253830
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

много слов и как обычно не по делу.

клиентская валидация это хорошо, но не панация. кто у нас недавно тут чесал языком о том, что браузеро пользователя нельзя доверять? ты мне покажешь как вернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере ? или дальше будешь великого умника строить из себя???
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253832
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Для танкистов еще раз повторю, суть рецепта - показать, как работают диалоги в mvc, а не о том, нужно ли валидировать что-то на сервере.

дубина ты. мне плевать на твои деалоги. если хотел показать какой ты грамотный и умеешь делать диалоги, то молодец, умеешь же, могёшь! возьми вон плюшко со стола, если дотянешься.

если тебе на заданный вопрос плевать и те лишь бы чо нить сунуть своё не в попад, то ради бога блин. преждупреждай, что ты не отвечаешь на заданный вопрос, а так мелешь отсебятину, не имеющую к топику отношения. буду подписывать твои комменты вот таким перлом: ОХ НУ И МОЛОДЕЦ ЖЕ ТЫ МСУ! и буду обсуждать тему с адекватными людьми.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253834
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttevgen12345,

я про этот onsuccess и говорю. он выполняется при любом ответе сервера с кодом 200. но там может быть либо невалидная форма, либо сообщение об успехе. вопрос в том, как в методе onsuccess отделить одно от другого лучше всего

чтож все такие грамотные, чуть ли шатлы в космос не запускают на шарепоинт и динамикс под бдительным пассивным руководством майкрософ, а в такой задачке теряются... видимо сверхумище даёт в голову нехило и мешает думать.

Я не совсем понимаю что именно нужно - вот мой пример, который я мучил пару дней назад - тынц

Посмотри на него и напиши какое тебе нужно поведение - может смогу помочь.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253836
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345,

я сделал Изменить, получил через Ajax форму. прописал в поле Стоимость продукта, билеберду вместо цифр. форма ушла без вопросов что-то там засабмитилось. некатит.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253839
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, много слов и как обычно не по делу.
Я тебе по делу уже всё сказал и показал. Теперь я пытаюсь выбить из тебя остальную дурь по поводу постбэков и валидации.

hVosttклиентская валидация это хорошо, но не панация. кто у нас недавно тут чесал языком о том, что браузеро пользователя нельзя доверять?
Ты идиотом долго будешь прикидываться? Суть рецепта не в том, чтобы научить валидировать на сервере. Поэтому приводится фейковый return Json(true). Если ты до сих пор этого не можешь понять, то бросай программировать, иди паси коров.


hVosttты мне покажешь как вернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере ? или дальше будешь великого умника строить из себя???
Вот тут есть рецепт, который показывает, что нужно сделать на сервере для клиента для отработки клиентской валидации: http://codearticles.ru/articles/2291

hVosttдубина ты. мне плевать на твои деалоги. если хотел показать какой ты грамотный и умеешь делать диалоги, то молодец, умеешь же, могёшь! возьми вон плюшко со стола, если дотянешься.
Дубину ты видишь в зеркале, двоешник. Иди постбэки пиши для mvc

hVosttесли тебе на заданный вопрос плевать и те лишь бы чо нить сунуть своё не в попад, то ради бога блин.
Десятый раз повторяю, умей задавай вопросы. А так получается, ты задаешь вопрос и тут же пишешь бред сивой кобылы. Собственно, я тебе и объясняю, что ты пишешь бред. Но ты сопротивляешься и еще больше начинаешь жечь. Это нормально?

hVosttпреждупреждай, что ты не отвечаешь на заданный вопрос, а так мелешь отсебятину, не имеющую к топику отношения. буду подписывать твои комменты вот таким перлом: ОХ НУ И МОЛОДЕЦ ЖЕ ТЫ МСУ! и буду обсуждать тему с адекватными людьми.
Я тебе уже дал все ответы. Только идиот вроде тебя не видит ответы, продолжает спорить и писать глупости. Акстись уже.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253840
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поведение нужно следующее:

на странице есть такой <div id="ajaxForma"></div>

и Ajax.ActionLink, который при нажатии рендерит в этот див форму

у формы есть OnSuccess, который должен сделать следующее:

1. если форма не прошла валидацию на сервере отрендерить пришедшую форму еще раз в диве
2. если форма прошла валидацию на сервере , в ответе прочитать из Json нужные данные (допустим присвоенный Id и Name) ну и для примера вывести это дело под дивом (или в диве, не важно...)
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253843
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

харе тупить. ты задачу не понял. или понял, но какую-то совсем другую, возможно это я виноват — не так объясняю.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253846
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

а да, расскажи как нам что такое постбеки на самом деле? можешь дать линку истины в первой инстанции и почему это не применимо к ASP.NET MVC? я тоже хочу знать! :)
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253847
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, харе тупить. ты задачу не понял. или понял, но какую-то совсем другую, возможно это я виноват — не так объясняю.
То, что ты не умеешь объяснять - не для кого не секрет. Вот и evgen12345 тебя нихрена не понимает. Я тебе показал, как решить задачу с помощью Html.BeginForm без каких-либо телодвижений. Ты начал херню какую-то писать. Ну что ты за человек?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253848
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, а да, расскажи как нам что такое постбеки на самом деле? можешь дать линку истины в первой инстанции и почему это не применимо к ASP.NET MVC? я тоже хочу знать! :)
Открой для себя гугл. Мне порядком поднадоело учить талпайопа, который ничего не хочет понимать, спорит и пишет феерический бред. Из гугла ты узнаешь, что в ASP.NET MVC нет постбэков. Это для WinForms.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253849
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭто для WinForms.
WebForms
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253853
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну твои примеры не решают задачу. забудь про клиенсткую валидацию. мы отправляем форму пусть хрен с тобой через $.post. в ответе либо форма на повторное редактирование (т.е. кусок html, который надо отрендерить за место старой формы), либо Json с новым айдишником допустим, не важно. что тут непонятного?

Ajax.BeginForm эту задачу не решает, для него OnSuccess это любой ответ с кодом 200 — даже невалидная форма. что в принципе логично, но что делать коду, расположенному в OnSuccess? как ему понять что пришло? форма на повторное редактирование или успех?
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253855
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Ок, сегодня вечером гляну, сейчас в кино убегаю.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253856
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWebForms

http://en.wikipedia.org/wiki/Postback

ничего про вебформс не сказано. ни слова. ааааа, самому надо додумывать! эт ж по-твоему логично? ))))))
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253858
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторIn the context of web development, a postback is an HTTP POST to the same page that the form is on.

вот и верь после этого человеку..... (((
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253864
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, ну твои примеры не решают задачу. забудь про клиенсткую валидацию. мы отправляем форму пусть хрен с тобой через $.post. в ответе либо форма на повторное редактирование (т.е. кусок html, который надо отрендерить за место старой формы), либо Json с новым айдишником допустим, не важно. что тут непонятного?
Ты совсем умом тронулся? Тебе через $.post отдается через PartialView нужный кусок html, делай с ним, что хочешь. Хоть повторное редактирование, хоть десятое редактирование. А в JsonResult возвращай хоть айдишники, хоть хрена лысого. Пипец, почему же ты такой тупой...

hVosttAjax.BeginForm эту задачу не решает, для него OnSuccess это любой ответ с кодом 200 — даже невалидная форма. что в принципе логично, но что делать коду, расположенному в OnSuccess? как ему понять что пришло? форма на повторное редактирование или успех?
Убей себя об стену. Когда поймешь, о чем я говорю, тогда и спасибо скажешь. А пока тупи дальше.

hVosttМСУWebForms

http://en.wikipedia.org/wiki/Postback

ничего про вебформс не сказано. ни слова. ааааа, самому надо додумывать! эт ж по-твоему логично? ))))))

http://weblogs.asp.net/fredriknormen/archive/2007/11/14/asp-net-mvc-framework-an-early-look.aspx The MVC Framework doesn’t support postbacks.


P.S. Вообщем, отдыхай, неуч.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253867
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Comparing Web Forms And ASP.NET MVC, Dino Esposito
Benefits of ASP.NET MVCNo postbacks are ever required to service a user request. No viewstate is ever required to persist the state of the page. No arraysof black-box server controls exist to produce the HTML for the browser.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253933
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

К Википедии как-то больше доверия. А она ничего про веб-формс не говорит, накидал ссылки на блоги каких-то ребят и рад стараться.

А если ты задачу не понял, отдыхай. Я уже разжувал как мог. Не понимаешь, и хрен с тобой.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253938
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, К Википедии как-то больше доверия. А она ничего про веб-формс не говорит, накидал ссылки на блоги каких-то ребят и рад стараться.
Отлично, я ему про великого гуру кладоискателя Дино Эспозито, а у него к гавнопедии больше доверия. Поставь себе клеймо "Йа талпайоп" на лоб, будт другом.

hVosttА если ты задачу не понял, отдыхай. Я уже разжувал как мог. Не понимаешь, и хрен с тобой.
Я тебе расписал уже всё, что можно. И даже более чем. Но у тебя клинический случай. Воообще грызи гранит, глядишь через недельку напишешь что-то вроде этого 14281289 . Бывай, двоешник.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253966
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

«Великий гуру Экспозито» ахаааахахааа.а..... ну и уууууммора )))))
пока своей головой не научишься думать, вперед всех авторитетов, гроша ломанного твои слова не стоят.
только пруфами и прикрываешься, да всякими гуру-авторитетами, а сам за себя и от себя ни слова сказать не можешь.
соболезную, чо.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253969
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

а если учесть кто такой Экспозито и для какого уровня свои книжонки пишет, то вообще баста. нашел блин себе авторитета. кладоискателя. ппц...
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253974
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt1. если форма не прошла валидацию на сервере отрендерить пришедшую форму еще раз в диве

Зачем постоянно рендерить форму которая уже на клинте?
После клиентской валидации, вполне достаточно получить от сервера JSON со статусом и ошибкой.

hVostt2. если форма прошла валидацию на сервере , в ответе прочитать из Json нужные данные (допустим присвоенный Id и Name) ну и для примера вывести это дело под дивом (или в диве, не важно...)

Если перестать фанатеть к стандартным шаблонам из букваря, которые полюбому не покроют весь функционал, то очень просто и гибко все разруливается на JS.
Принять там к примеру такой результ { isValid: 'true', errorMsg: 'Invalid input', id: '123' }

зы
или я тоже не понял )
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253979
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, «Великий гуру Экспозито» ахаааахахааа.а..... ну и уууууммора )))))
Ага, такая же умора, как ламеры из майкрософта, которые пишут спецификации и рекомендации, о которых ты вчера вбрасывал. На одной чаше весов они вместе с Экспозито, на другой чаше - ты такой опытный и чудесный с постбэками в mvc. Кому верить?

hVosttпока своей головой не научишься думать, вперед всех авторитетов, гроша ломанного твои слова не стоят.
Пока своей головой не научишься читать, что тебе пишут, ты будешь тем же унылым гавнокодером без какого-либо практического опыта за плечами.

hVosttтолько пруфами и прикрываешься, да всякими гуру-авторитетами, а сам за себя и от себя ни слова сказать не можешь.
соболезную, чо.
Пруфы - это аргументы и доказательства правоты. Без них ты гавно на лопате. Кем пока и являешься, прости.

hVosttа если учесть кто такой Экспозито и для какого уровня свои книжонки пишет, то вообще баста. нашел блин себе авторитета. кладоискателя. ппц...
... сказал авторитетнейший hVostt с кладезем знаний в багаже. Ты попробуй сначала напиши не то, что книжонку, а, хотя бы, статейку. А потом мы поговорим с тобой про авторитет и знания. Пока ты ниже плинтуса, хвост.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253982
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонили я тоже не понял )
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38253999
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
что то я не понял это что из области хака что ли?
авторвернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере?
на кой форму то возвращать? если она уже есть на клиенте, надо просто подсветить не верные поля ввода.
возвращаем список не верных полей если проверка вводимых значений исполнена партикулярно as mvc
просто находим все спаны с атрибутом data-valmsg-for= поле с ошибкой и убираем с них display none и все...... выходит подсветка
не прально введенное поле, стандартный механизм,
если клиентской проверки в помине нет а охота пыль пустить, находим контейнер где лежит поле с непральным вводом и подкрашиваем его, можно с сервера притащить расшифровку кода ошибок, это ж все рутина хотя и стандартная
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254001
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степичто то я не понял
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254004
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttМСУ,

К Википедии как-то больше доверия. А она ничего про веб-формс не говорит, накидал ссылки на блоги каких-то ребят и рад стараться.


А если ты задачу не понял, отдыхай. Я уже разжувал как мог. Не понимаешь, и хрен с тобой.

Как то не красиво так себя вести.
А по поводу доверия к википедии - то тут вы сильно заблуждаетесь. кто пишет в википедию? Да не понятно кто - так же не понятно кто потом это валидирует - насколько квалифицированный человек. В википедию писать вообще любой может - хотите добавьте статью на эту тему (постбэки) сами - для рунета на Русском языке. А Дино Эспозито как миниму человек более 10 лет занимающийся технологиями Microsoft. И кстате писал в MSDN Magazine.
Помню его отличную книгу ASP.NET 2.0 Задача-Проект-Решение - отличная книга, я бы сказал лучшая.

Ну и вам как почитателю википедии собственно пруф линк - Dino Esposito
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254005
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
я вот не пойму а чем стандартный механизм разора не угодил, если поля рендерятся разором с не валидными значениями
на базе атрибутов, разор автоматом включает подсветку не верных полей?
или я ошибаюсь, я давно уже пользуюсь кастомным механизмом проверки https://github.com/ionson100/Edition ( кое где кривовато
но на админку тянет)
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254008
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиhVostt,
что то я не понял это что из области хака что ли?
авторвернуть форму на повторное редактирование через Ajax если форма не прошла валидацию на сервере?
на кой форму то возвращать? если она уже есть на клиенте, надо просто подсветить не верные поля ввода.
возвращаем список не верных полей если проверка вводимых значений исполнена партикулярно as mvc
просто находим все спаны с атрибутом data-valmsg-for= поле с ошибкой и убираем с них display none и все...... выходит подсветка
не прально введенное поле, стандартный механизм,
если клиентской проверки в помине нет а охота пыль пустить, находим контейнер где лежит поле с непральным вводом и подкрашиваем его, можно с сервера притащить расшифровку кода ошибок, это ж все рутина хотя и стандартная

Так стандартный JQuery.Validate работает на ура.
У меня в примере работает криво так как я там мутил одну тему и пока не до мутил.
Но в целом работает попробуйте при редактировании стереть все поля или в поле сумма написать число с запятой форма не будет отправленна. Если есть ошибка на сервере то возвращаем ответ - что то типа следующего:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public HttpResponseMessage PutProduct(int id, Product product)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            if (id != product.Id)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            db.Entry(product).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        }



Тогда ответ с кодом 200 не вернется
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254009
ajax...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторAjax.BeginForm эту задачу не решает, для него OnSuccess это любой ответ с кодом 200
в случае ошибки, обычно, возвращают код 403 - как бэ нормальная практика!!!
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - можешь найти что нибудь подходящее из из 40...
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254010
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ,
я вот не пойму а чем стандартный механизм разора не угодил, если поля рендерятся разором с не валидными значениями
на базе атрибутов, разор автоматом включает подсветку не верных полей?
или я ошибаюсь, я давно уже пользуюсь кастомным механизмом проверки https://github.com/ionson100/Edition ( кое где кривовато
но на админку тянет)
Дак я ж ему и дал стандартый вариант: http://codearticles.ru/articles/2256
Бери да юзай, родная валидация, родная модель, родной $.post. Что еще надо, не понятно.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254018
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиМСУ,
я вот не пойму а чем стандартный механизм разора не угодил, если поля рендерятся разором с не валидными значениями
на базе атрибутов, разор автоматом включает подсветку не верных полей?
или я ошибаюсь, я давно уже пользуюсь кастомным механизмом проверки https://github.com/ionson100/Edition ( кое где кривовато
но на админку тянет)

Разор не подсвечивает - подсвечивает JQuery.Validator

Во что генерит разор для поля которое должно быть заполнено:
Код: html
1.
2.
3.
4.
5.
6.
7.
            <div class="editor-label">
                <label for="Name">Наименование</label>
            </div>
            <div class="editor-field">
                <input class="text-box single-line" data-val="true" data-val-required="Требуется поле Наименование ." id="Name" name="Name" type="text" value="" />
                <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
            </div>



Если поле не заполнить - сработает скрипт и получим:
Код: html
1.
2.
3.
4.
5.
6.
7.
            <div class="editor-label">
                <label for="Name">Наименование риска</label>
            </div>
            <div class="editor-field">
                <input name="Name" class="text-box single-line input-validation-error" id="Name" type="text" value="" data-val-required="Требуется поле Наименование риска." data-val="true">
                <span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Name"><span for="Name" generated="true">Требуется поле Наименование риска.</span></span>
            </div>
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254021
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

А если валидация не прошла на сервере - то еще будут отображенны скрытые подсказки - вот кто как их гененрит не подскажу, но думаю что разумнее и отображать скрывать по скрипту так как передается глобально значение IsValid
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254031
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345,авторРазор не подсвечивает - подсвечивает JQuery.Validator

Отключи скрипт в браузере и посмотри, придёт ли форма с подсказками на не правильные значения..
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254036
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$.validator подсвечивает только для unobtrusive validation. razor тоже может светить.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254040
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,авторrazor тоже может светить.
ну вот я о том же не у всех де js включен
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254043
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степину вот я о том же не у всех де js включен
Да, выставляем ClientValidationEnabled="true" и UnobtrusiveJavaScriptEnabled="true" в конфиге, тогда при включенном js будет сначала $.validator отрабатывать, а потом уже razor.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254075
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПруфы - это аргументы и доказательства правоты.


Уволен.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254076
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345А если ты задачу не понял, отдыхай. Я уже разжувал как мог. Не понимаешь, и хрен с тобой.

Как то не красиво так себя вести.
А по поводу доверия к википедии - то тут вы сильно заблуждаетесь. кто пишет в википедию? Да не понятно кто - так же не понятно кто потом это валидирует - насколько квалифицированный человек. В википедию писать вообще любой может - хотите добавьте статью на эту тему (постбэки) сами - для рунета на Русском языке. А Дино Эспозито как миниму человек более 10 лет занимающийся технологиями Microsoft. И кстате писал в MSDN Magazine.
Помню его отличную книгу ASP.NET 2.0 Задача-Проект-Решение - отличная книга, я бы сказал лучшая.

Ну и вам как почитателю википедии собственно пруф линк - Dino Esposito [/quot]

Что-то я вас товарищи совсем не понимаю. Человек просил пруф, я ему дал пруф на википедию. На чито мне было в грубой форме донесено, что такой пруф я должен запхать куда подальше, ибо какой-то гений Экспозито говорит совершенно другое...

И что теперь? Я должен как олень искать пруфы среди банды авторитетов, сугобо которых придерживается МСУ. Для начало этот кадр хотябы огласил б свой личный список из этой банды, которым он слепо верит. Ибо мозгов ему своих кажется не выдали при компиляции.

Т.е. мы банальна должны мериться авторитето-письками в своих аргументах, так? «А вот мой папа с черным поясом по карате, тракторист 80 левела, вот придет и твоему каааа-к даст!»

К Дино Экспозито претензий не имею. Он-то молодец. А вот некоторые, которые в укор мне ставят, что я ни одной книги не написал, так пусть покажет хотяб одну свою. Да хоть драную статейку, прежде чем выпендриваться. За чужие спины, я смотрю, прятаться мы хорошо научились.

Постбек в контексте вебформс это конкретная технология про которую пишет Экспозито. В контексте веб это «a postback is an HTTP POST to the same page that the form is on» и не надо тут ничего выдумывать, выдерать слова из контекста и ржать над ними аки конь.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254079
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение:
=======

в контроллере перед return

Response.AddHeader("X-Form-Status", "Ok"); // если все ок

и

Response.AddHeader("X-Form-Status", "Error"); // форму на повторное редактирование



в скрипте OnSuccess(data, status, xhr):

...

if(xhr.getResponseHeader('X-Form-Status') == "Ok") {
// делаем с data что требуется
} else {
$('#formContainer').html(data); // снова рендерим форму в data (с ValidationSummary и т.п.)
}

...


преимещества: в data может быть что угодно, хоть Json, хоть Html, при может различаться для разных X-Form-Status.
логика доставки четко разделена, в data — только требуемые данные, в заголовке HTTP — статус обработки, т.е. данные не надо лепить из разнородных по назначению элементов и приделывать корявый костыль вида isValid


виноват, надо было сразу пример привести.
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254118
аякс....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ерунда...
вставив свой хидер ты по сути повторил то, что уже есть в заголовках - statusCode !!!
отдай 403 в случае ошибки и, проверяй не в OnSuccess а в OnError!!!
...
Рейтинг: 0 / 0
[ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
    #38254153
аякс....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / [ASP.NET MVC 4] Аналог Http.BeginForm() GET->POST->Redirect для Ajax.BeginForm
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]