0

주문 된 목록 디자인을 사용하여 내 트위터 앱에서 트윗을 볼 수 있습니다. Ajax 삽입을 호출 할 때마다 페이지에 Ajax 링크의 다른 복사본을 넣습니다. 나는 컨트롤러에서 트윗의 다음 세트를 가져 와서 줄을 삽입하려고합니다. 태그 주위를 움직이려고했지만 추가로 아약스 버튼이 계속 나타납니다.MVC Ajax 액션 링크가 자신을 복사하여 추가하는 방법은 무엇입니까?

CSS 문제 일 뿐이라고 생각하면서 모든 것을 제거했습니다. 문제는 아니었다. 코드 블록 앞뒤에 닫기 및 열기 태그를 넣으려면 목록을 다시 포맷해야합니다.

방금 ​​부분 뷰에 넣으려고했는데 레이아웃에 아약스 코드를 넣었습니다.

아약스 작업 링크

 @Ajax.ActionLink("Update Tweets", "Index", "Home", 
      new AjaxOptions 
      { 
       UpdateTargetId = "TweetBox", 
       InsertionMode = InsertionMode.InsertBefore, 
       HttpMethod = "Get", 


      }) 

부분보기

<div id="TweetBox"> 
    <div class="TwitterMessageBox"> 
    <ol> 
     <li class="TweetLineBody"> 
      @foreach (var item in Model) 
      { 

       @Html.Hidden(item.StatusId, item.StatusId) 
       <div class="TwitProfileImage"> 
        <img [email protected](item.ImageUrl) alt="@item.ScreenName" /> 
       </div> 
       <div class="TwitRealName"> 
        @item.User 
       </div> 
       <div class="TwitNickName"> 
        @MvcHtmlString.Create(@Html.Namify(@item.ScreenName)) 
       </div> 
       <div class="TweetText"> 
        @MvcHtmlString.Create(@item.Tweet)</div> 
       <div class="TweetTime"> 
        @Html.RelativeDate(@item.Created)</div> 
       <div class="TweetRating"> 
        Rating</div> 



      } 
     </li> 
     </ol> 
    </div> 
    </div> 

감사관 홈/색인이

말을 할 수있는 행동을하다

에 단지 기본 Enumerable에서 목록입니다 컨트롤러 작업에서 데이터를 가져 오는 아약스 호출이 있습니다. div id 인 targetid에 이전에 삽입됩니다.

초기보기는

AJAX 업데이트 HTML 링크 // 당신은 컨트롤러가 아약스를 호출하고 데이터를

트윗 1

트윗이

등을받을 수이를 클릭 완벽 = 완벽하고 정렬 됨

웹 페이지에서 Ajax 액션 링크를 클릭하면 나가서 데이터를 가져 오지만 두 번째를 추가합니다. 이

AJAX UPDATE HTML 링크처럼

AJAX 업데이트 HTML 링크

트윗 1 개

트윗 2 // 정렬이 여전히 완벽하지만 2 아약스는 지금을 클릭

링크가 ajax 링크를 세 번째로 실행 // 정렬은 여전히 ​​완벽하지만 두 번째 아약스 링크가 샌드위치 모양으로 붙어 있습니다.

AJAX 업데이트 HTML LINK

AJAX UPDATE HTML 링크

트윗 1

트윗이
// 정렬이 여전히 완벽하지만 당신은

플러스 샌드위치 2 아약스 상단에 링크와 하나가 트윗은

AJAX UPDATE HTML의 LINK 결과

트윗 1 개

트윗 2 // 정렬이 여전히 완벽하지만 2 아약스 상단에 링크와 제 3 목록은 요청에 따라 2/3

컨트롤러 코드 betweet 삽입되어 있습니다

public class HomeController : Controller 
{ 
    // 

    // GET: /Home/ 
    private TwitterContext twitterCtx; 

    public ActionResult Index() 
    { 


     twitterCtx = new TwitterContext(); 

     List<TweetViewModel> friendTweets = (from tweet in twitterCtx.Status 
              where tweet.Type == StatusType.Public 
              select new TweetViewModel 
              { 
               ImageUrl = tweet.User.ProfileImageUrl, 
               UserId = tweet.UserID, 
               User = tweet.User.Name, 
               ScreenName = tweet.User.Identifier.ScreenName, 
               StatusId = tweet.StatusID, 
               Tweet =  HomeController.AddWebAndTwitterLinks(tweet.Text), 
               Created = tweet.CreatedAt 

              }) 
    .ToList(); 

     return View(friendTweets); 
    } 

내가 원하는 행동은 컨트롤러와 데이터 삽입을 호출하는 1 아약스 링크입니다.

+0

컨트롤러 코드를 게시하십시오. – Dismissile

+0

감사합니다. –

답변

0

모든 코드를 보지 않고도 뷰를 분류하지 않았다고 가정 할 수 있습니다. 컨트롤러가 전체 인덱스보기를 반환하는 것 같습니다. 트윗 박스를 부분 뷰에 넣으면 아약스 액션이 그 부분 뷰를 반환해야합니다.

+0

답변을 추가해야하는 경우 (Request.IsAjaxRequest()) return PartialView ("IndexP", friendTweets); 위대한 imran_ku07 MS MVP가 도움을주었습니다. –