Отправить PartialView - PullRequest
       1

Отправить PartialView

0 голосов
/ 29 августа 2010

У меня есть главная страница, на которой отображается следующий PartialView:

<% Html.RenderPartial("AddPage); %>

Контроллер AddPage выглядит так:

public class PagController : Controller
{
    [HttpGet]
    public PartialViewResult AddPage()
    {
        return PartialView();
    }

    [HttpPost]
    public PartialViewResult AddPage(FormCollection forms)
    {
        //some logic here
        // some view data here

        return PartialView();
    }
}

И вид выглядит так:

<% using (Html.BeginForm("AddPage", "Page", FormMethod.Post, new { ID = "PageManager" })){%>
<%= Html.TextBox("txtAddPage") %>
<input type="submit" value="AddPage" />
<%} %>

Моя проблема в том, что когда я нажимаю на кнопку submit, я получаю перенаправление на: http://localhost:1234/Page/AddPage,, когда вместо этого я просто хочу, чтобы частичное представление было отправлено, и возвращало некоторые базовые данные представления, если необходимо, а также оставалось на том же стр.

У меня здесь момент блондинки? потому что я знаю, что сделал это раньше

РЕДАКТИРОВАТЬ - Это частичное представление отображается на нескольких страницах, а не только на одной.

Ответы [ 2 ]

0 голосов
/ 29 августа 2010

Решение для полной обратной передачи

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

Затем вы можете использовать эти данные в действии POST, чтобы получить RedirectResult, например:

return RedirectToAction("action_from_field", "controller_from_field");

Решение обратной передачи Ajax

Вы всегда можете отправить свои данные с помощью Ajax, и в этом случае URL-адрес обратной передачи может быть любым. В вашем случае это должен быть URL текущей страницы. Редактировать: И Ajax будет предпочтительным решением в вашем конкретном случае.

0 голосов
/ 29 августа 2010

Если вы хотите отправить и перезагрузить только часть своей страницы, вам нужно использовать AJAX.Самый простой способ сделать это - визуализировать частичное представление в UpdatePanel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...