2015-08-06 2 views
0

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

Main.cshtm

<div class="pr-nav"> 
    <div class="btn btn-primary"> 
     User Guide 
    </div> 
    <div class="btn btn-primary"> 
     Key Info 
    </div> 
</div> 
<div class="container"> 

@{ Html.RenderPartial("Partial"); } 
</div> 

Partial.cshtml

<div> 
     <ul class="dashbord"> 
      @foreach (var i in Model) 
      { 
       <li class="item"><a href="@Url.Action("", "CISIProfessionalRefresherController", new { subjectID = i.subject_id })"> 
        <div class="itemBox"> 
         <div class="itemImage"> 
          Image will go here 
         </div> 
         <div class="itemContent"> 
          @i.subject_title 
          <br /> 
          @i.cpd_time_text 
          <br /> 
          @i.sub_heading 
         </div> 
        </div> 
       </a></li> 

      } 
     </ul> 
    </div> 
    @if (Model.HasPreviousPage) 
    { 
     @Html.ActionLink("< Prev", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber - 1 }) 
    } 

    else 
    { 

     @Html.Raw("&nbsp;"); 

    } 
    &nbsp; 
    @if (Model.HasNextPage) 
    { 
     @Html.ActionLink("Next >", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber + 1 }) 
    } 
    else 
    { 
     @Html.Raw("&nbsp;") 
    } 
+0

этот учебник был весьма полезным, когда я пытался узнать, как сделать это правильно : http://chsakell.com/2013/05/10/ajax-and-jquery-in-asp-net-mvc/ – rogerdeuce

+1

Вам необходимо использовать ajax для обновления текущей страницы –

+0

http://api.jquery.com/загрузки / –

ответ

1

Скажем, если ваш Prev и Next имеют ИД "#aPrev" и "#aNext", то вы можете:

$(".container").on("click", "#aPrev,#aNext", function(){ 
     $.get($(this).attr("href"), function(data){ 
       $(".container").html(data); 
     }) 
}) 

дополнительная записка,

f или установка Prev и Next Id, вы можете использовать:

@Html.ActionLink("< Prev", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber - 1, id = "aPrev" }) 


@Html.ActionLink("Next >", "getMySubjectList", new { catogoryId = 0, pageid = Model.PageNumber + 1, id = "aNext" }) 
1

Обратите внимание, что по умолчанию Sitefinity возвращает полную страницу HTML, когда вы запрашиваете один из методов действий с помощью Ajax.

Сначала вам необходимо зарегистрировать пользовательский маршрут MVC, а затем отправить запрос ajax на это действие. В вашем методе действий проверьте, запрашивает ли Request.IsAjaxRequest(), а затем возвращает частичное представление.

Регистрация MVC маршрут Пример (ст.8): запрос

Bootstrapper.MVC.MapRoute(name: "ajaxRoute", 
            url: "ajax/{controller}/{action}/{departmentUrl}/{page}", 
            defaults: new 
            { 
             controller = "ProductList", 
             action = "Index", 
             departmentUrl = UrlParameter.Optional, 
             page = UrlParameter.Optional 
            }); 

образца к пользовательскому маршруту:

@Html.PagedListPager(Model.Products, 
        p => Url.RouteUrl("ajaxRoute", 
         new 
         { 
          controller = ViewContext.RouteData.Values["controller"].ToString(), 
          action = "Index",.. 
} 
Смежные вопросы