2010-01-17 2 views
1

У меня есть страница asp.net mvc, которая отображает запись из базы данных, она использует RenderPartial для вызова другого представления, которое отображает редактируемый список элементов, связанных с этой записью.ASP.NET MVC Catching «Сохранить» POST с RenderPartial

Моя проблема в том, что я хочу, чтобы с момента сохранения/отправки кнопка, которая не только сохраняет изменения, внесенные для этой записи, но также и изменения, внесенные в RenderPartial часть ... Я создал метод, принимающий POST в контроллере RenderPartials, но он не " t вызвать? Есть идеи? Или я неправильно использую RenderPartial? Я сделал это таким образом, так что у меня есть контроллер, который обрабатывает подмножество данных

Update: Я не думаю, что я был достаточно ясен:

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

Индивидуальное имя, адрес электронной почты и т. Д. И Организация Ссылка 1 Организация Ссылка 2 и т. Д. ... по ссылке table

Из-за объема данных, которые я хочу отобразить на странице, я решил использовать разные контроллеры для визуализации каждой части, что бы иметь смысл. Но тогда, когда вы сохраняете данные, я должен использовать только один метод контроллера или могу Я называю один контроллер другим ... У меня есть только одна форма и одна кнопка «сохранить» для всей страницы

Надеюсь, это яснее?

+0

Поскольку работа с MVC больше поняла, что это никогда не будет отвечать, потому что это был глупый вопрос. –

ответ

0

Вам не нужно иметь специальный контроллер для каждого контроллера, хотя я подозреваю, что вы хотели сказать: «Я создал метод, принимающий POST в действии RenderPartial ...»?

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

Например, вот форма, которую мы используем со страницы ASCX:

<% using (Html.BeginForm("InvoiceDetail" //Action 
      , "CompanyInvoice" //Controller 
      , FormMethod.Post 
      , new { @id = "InvoiceForm", @autocomplete = "off" })) 
    {%> 

Форма может опубликовать любое действие, в любом контроллере. Не то, что вы хотели бы, но это довольно гибко. Теперь вы можете иметь несколько форм на одной веб-странице, что отлично подходит для сложных форм.

Смежные вопросы