используя частичное представление на странице просмотра - PullRequest
0 голосов
/ 25 марта 2011

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

Вот код, который я использовал,

  1. Внутри контроллера,

    public ActionResult Index()
    {
        Users allUsers = new Users();
        if (Request.IsAjaxRequest())
        return View("Index", allUsers.GetAllUsers());
       else
        return View(allUsers.GetAllUsers());
    }
    

частичное представление [index.ascx]

    <%@ Control Language="C#"    Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Model.Users>>" %>
   <table>
     <tr>
      <th>
     </th>
        <th>
             firstname
       </th>
       <th>
             userid
       </th>
       <th>
             dob
       </th>
       <th>
          address
       </th>        
  </tr>
  <% foreach (var item in Model)
      { %>
   <tr>
      <td>
         <%: Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %>
         |
         <%: Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%>
         |
         <%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
     </td>
     <td>
         <%: item.firstname %>
     </td>  
     <td>
         <%: item.userid %>
     </td>
     <td>
        <%: String.Format("{0:g}", item.dob) %>
    </td>
    <td>
        <%: item.address %>
    </td>
   </tr>
          <% } %>
    </table>
   <p>
    <%: Html.ActionLink("Create New", "Create") %>
     </p>

страница index.aspx,

        <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <% using (Ajax.BeginForm("Index", new AjaxOptions
       {
           UpdateTargetId = "results"
       }))
           { %>
        <input id="Submit1" type="submit" value="submit" />
        <% } %>
        <div id="results">
            <% Html.RenderPartial("Index", ViewData.Model); %>
        </div>
        <h2>
            Index</h2>
        <table>
            <tr>
                <th>
                </th>
                <th>
                    firstname
                </th>
                <th>
                    userid
                </th>
                <th>
                    dob
                </th>
                <th>
                    address
                </th>
            </tr>
            <% foreach (var item in Model)
               { %>
            <tr>
                <td>
                    <%: Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %>
                    |
                    <%: Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%>
                    |
                    <%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
                </td>
                <td>
                    <%: item.firstname %>
                </td>
                <td>
                    <%: item.userid %>
                </td>
                <td>
                    <%: String.Format("{0:g}", item.dob) %>
                </td>
                <td>
                    <%: item.address %>
                </td>
            </tr>
            <% } %>
        </table>
        <p>
            <%: Html.ActionLink("Create New", "Create") %>
        </p>
    </asp:Content>

Ответы [ 2 ]

0 голосов
/ 25 марта 2011

Это был хороший вызов, что я решил проблему сам.Я поместил ajax-ссылки в usercontrol, а затем поместил div результатов на страницу индекса, на которой данные были обработаны с использованием того же элемента управления partview.

Затем в методе действия контроллера я вызвал возвращение partualview (имя вида и данные модели).

Вот в чем дело ... все готово.В любом случае, спасибо за вашу помощь.

0 голосов
/ 25 марта 2011

Пожалуйста, попробуйте

return PartialView("index",allUsers.GetAllUsers())

в случае запроса ajax. Я подозреваю, что контроллер отправляет страницу просмотра, когда вы звоните

return View("index", allUsers.GetAllUsers());

, который, в свою очередь, отображает частичную страницу, что создает некоторый беспорядок во время процесса. и наоборот, вы можете попробовать переименовать вашу частичную страницу в index1 и

return View("index1", allUsers.GetAllUsers());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...