ASP.NET MVC 2: ViewData.Model.ExecuteResult не существует - PullRequest
3 голосов
/ 30 июня 2010

ViewData.Model.ExecuteResult не существует в ASP.NET MVC2, но в MVC1.

Какая альтернатива в ASP.NET MVC2?

Что я хочу сделать, это обновить таблицу после запроса ajax. Поэтому я поставил таблицу в дополнительном представлении. Как я могу обновить это частичное представление, не загружая всю страницу снова?

1 Ответ

1 голос
/ 30 июня 2010

ExecuteResult - это метод класса System.Web.Mvc.ActionResult. Вы уверены, что не хотите смотреть там?

http://aspnet.codeplex.com/SourceControl/changeset/view/23011#266522

Свойство Model является просто типом объекта и всегда имело значение AFAIK.

Что касается обновления таблицы, то, что я делал в прошлом, чтобы обновить часть страницы после частичного просмотра, это использовать Ajax.BeginForm следующим образом:

<% using (Ajax.BeginForm("Customers", new AjaxOptions { UpdateTargetId  = "customerList"})) { %>
    <!-- FORM HERE -->
<% } %>
<div id="customerList">
    <% Html.RenderPartial("CustomerList"); %>
</div>

«UpdateTargetId» является ключевым здесь и указывает MVC использовать результат действия «Клиенты» для замены (по умолчанию вы можете добавить, установив InsertionMode AjaxOption в InsertBefore или InsertAfter) все внутри элемента с идентификатором вас указать.

Если вы хотите использовать одно и то же действие для обслуживания запроса на полную страницу и запроса Ajax, вы можете использовать метод расширения IsAjaxRequest, чтобы определить, что возвращать:

if (Request.IsAjaxRequest())
    return PartialView("CustomerList");

// Not an Ajax request, return the full view
return View();

Надеюсь, это поможет!

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