Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Html.Action -- вы знали? / 16 сообщений из 16, страница 1 из 1
07.07.2013, 20:54
    #38323338
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
на странице есть вот такое

Код: c#
1.
@Html.Action("MyChildAction", "MyController", { id = SomeId })


если страница рендерится в результате выполнения метода POST, то вызывается POST-версия MyChildAction (если такая есть). бред? или логично?
...
Рейтинг: 0 / 0
07.07.2013, 22:01
    #38323368
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
логично ж...сабмит делает пост бек и неважно сколько там форм
легко решается переименованием акшена на пост )
...
Рейтинг: 0 / 0
07.07.2013, 23:01
    #38323415
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
handmadeFromRu,

ну так на странице может быть не один <form>, а постбек выполняется только для той формы, где был вызван submit. а так получается, если в ChildAction сидят формы, им всем придёт POST. а в модель попадёт только то, что было засабмичено. на мой взгляд как-то совсем не логично.

конечно решается ) в том числе и проверкой на ControllerContext.IsChildAction
...
Рейтинг: 0 / 0
08.07.2013, 10:04
    #38323705
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
hVostthandmadeFromRu,

ну так на странице может быть не один <form>, а постбек выполняется только для той формы, где был вызван submit. а так получается, если в ChildAction сидят формы, им всем придёт POST. а в модель попадёт только то, что было засабмичено. на мой взгляд как-то совсем не логично.

конечно решается ) в том числе и проверкой на ControllerContext.IsChildAction
Вложенные формы не получатся.
...
Рейтинг: 0 / 0
08.07.2013, 13:32
    #38324007
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
ShSerge,

как это? т.е. считаете, такое поведение ради вложенных форм?
...
Рейтинг: 0 / 0
08.07.2013, 14:01
    #38324073
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
hVostt,

А чё там в итоге-то на странице получается?
...
Рейтинг: 0 / 0
08.07.2013, 14:08
    #38324081
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
ShSerge,

@Html.Action("ChildAction", "Controller", new { id = SomeId })

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

в итоге в чайлде ModelState.IsValid == false, со всеми вытекающими... если конечно это не учесть :)
...
Рейтинг: 0 / 0
08.07.2013, 14:38
    #38324123
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
hVostt@Html.Action("ChildAction", "Controller", new { id = SomeId })

видите? я передаю один параметр, и жду отрендеренного акшенаДак какой результат рендеринга ты ждёшь, а что получается в итоге на странице?
...
Рейтинг: 0 / 0
08.07.2013, 14:38
    #38324127
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
А если аттрибут ставить [ChildActionOnly] ?
...
Рейтинг: 0 / 0
08.07.2013, 14:56
    #38324173
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
Парамон,

без разницы. влияет лишь на то, что не получится выполнить вот такое: domain.tld/Controller/MyChildAction (результат будет 404)
...
Рейтинг: 0 / 0
08.07.2013, 15:01
    #38324190
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
skyANA,

@Html.Action("ChildAction", "Controller", new { id = SomeId })

чтобы отрендерился GET, а не POST. когда будет единоличный POST (например, там сидит Ajax.BeginForm), вот тогда мне нужен будет результат POST-версии акшена.

просто удивительно, что при выполнении [HttpPost] Action, при рендеринге страницы (т.е. при отработке ExecuteResult) выполняются как POST запросы ко всем [HttpPost] ChildAction на странице, и получают они все одно и тоже — что было засабмичено.

может это и правильно. как думаете?
...
Рейтинг: 0 / 0
08.07.2013, 15:24
    #38324233
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
hVosttможет это и правильно. как думаете?
Думаю нужно избегать там логики, кроме генерации партиал вью )
...
Рейтинг: 0 / 0
08.07.2013, 15:30
    #38324245
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
Парамон,

ну вот и я очем. должна быть чистая генерация вью. а получается уже логика.

или прикажете отказаться от Html.Action?
...
Рейтинг: 0 / 0
08.07.2013, 15:38
    #38324260
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
hVosttили прикажете отказаться от Html.Action?
Разве что в пользу Html.RendAction )
То, что там доступны переменные пост, это плюс, и может пригодится.
...
Рейтинг: 0 / 0
08.07.2013, 15:40
    #38324263
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
* Html.RenderAction
...
Рейтинг: 0 / 0
08.07.2013, 15:43
    #38324274
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Html.Action -- вы знали?
зачем ж отказываться, просто get Edit, а на post EditPost. хотя когда впервые я столкнулся с таким тоже был удивлен)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Html.Action -- вы знали? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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