Частичный ASP.NET MVC Просмотр отправить - PullRequest
3 голосов
/ 29 октября 2010

Я новичок в ASP.NET MVC, поэтому вопрос может показаться "глупым", извините.

У меня есть частичный вид в моем домашнем виде.

Частичное представление отправляет форму, вызывающую метод действия внутри HomeController.

Работает нормально с проверкой сервера, проблема в том, что после публикации отображается только частичное представление.

Как отобразить весь домашний вид после публикации?

О коде:

Внутри PartialView У меня есть форма:

<% using (Html.BeginForm("Request", "Home")) { %>

Запрос - это ActionResult, определенный внутри моего HomeController.

[HttpPost]
public ActionResult Request(RequestModel model)
{
  if (ModelState.IsValid)
  {
    // Saving data .....
  }
  else
  {
     // Show Server Validation Errors
     return View();
  }
}

В это время после публикации ascx показывает ошибки проверки сервера, но отображается только код ascx PartialView. URL выглядит так после сообщения:

http://xxxxxxxxxxx/Home/Request

Я хочу показать весь домашний вид с ascx внутри, показывающим ошибки проверки сервера.

Ответы [ 3 ]

5 голосов
/ 17 ноября 2010

Попробуйте сделать частичную отправку, используя jQuery:

<script type="text/javascript">
$(document).ready(function () {
    $("input[type=submit]").live("click", function () {
        var f = $("input[type=submit]").parents("form");
        var action = f.attr("action");
        var serializedForm = f.serialize();
        $.ajax({
            type: 'POST',
            url: action,
            data: serializedForm,
            success: function (data, textStatus, request) {
                if (!data == "") {
                    // redisplay partial view
                    $("#formDiv").html(data);
                }
                else {
                    // do whatever on sucess
                }
            }
        });
        return false;
    });
});
</script>

Предполагается, что ваш view / ascx / HTML выглядит примерно так:

<div id="formDiv">
    <% Html.RenderAction("Request"); %>
</div>
2 голосов
/ 18 октября 2012

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

return Redirect(Request.Referrer)

Ранее:

return View();
2 голосов
/ 07 ноября 2010

Также можно изменить тип возврата:

 [HttpPost]
public PartialViewResult Request(RequestModel model)
{
  if (ModelState.IsValid)
  {
    // Saving data .....
  }
  else
  {
     // Show Server Validation Errors
     return PartialView();
  }
}
...