MVC Ajax action Link копирует себя и добавляет, как мне исправить - PullRequest
0 голосов
/ 06 марта 2012

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

Думая, что это была проблема css, я все это удалил.Разве не проблема.Мне придется заново отформатировать мой список, чтобы поместить закрывающие и открывающие теги до и после блока кода.

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

Ajax Action Link

       @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 src=@Url.Content(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>

Контроллер - это просто базовый перечисляемый список в Home / Index

ЭтоПоведение

Допустим, у вас есть вызов ajax, который получает данные от действия контроллера.Он вставляет ранее в целевой адрес, который является идентификатором div.

Первоначальный вид идеален

ОБНОВЛЕНИЕ AJAX HTML ССЫЛКА // Вы щелкаете по нему, чтобы контроллер вызывал ajax и получал данные

Чирикать 1

Чирикать 2

и т. Д. = Идеально и выровнено

Вы нажимаете ссылку действия Ajax на своей веб-странице, она выходит и получает данные, нодобавляет секунду вроде этого

AJAX ОБНОВЛЕНИЕ HTML LINK

AJAX ОБНОВЛЕНИЕ HTML LINK

Tweet 1

Tweet 2 // выравнивание по-прежнему идеально, но выиметь 2-ые ссылки ajax

Теперь нажмите на ссылку ajax 3-й раз // выравнивание все еще идеально, но у вас есть 2-ая ссылка ajax вверху и одна зажата

ОБНОВЛЕНИЕ AJAX HTML LINK

ОБНОВЛЕНИЕ AJAX HTML-ССЫЛКА

Чирикать 1

Чирикать 2
// выравнивание все еще идеально, но у вас есть 2-ая ссылка ajax вверху и одна зажатая

Плюс результаты Tweets

ОБНОВЛЕНИЕ AJAX HTML LINK

Tweet 1

Tweet 2 // выравнивание по-прежнему идеальное, но у вас есть 2-ая ссылка ajax вверху и 3-й список вставлен между двумя / 3

Код контроллера для запроса:

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);
    }

My Desired Behavior - 1 ajax-ссылка для вызова контроллера и вставки данных

1 Ответ

0 голосов
/ 07 марта 2012

Не видя весь код, я могу только предположить, что у вас не разобрались ваши взгляды.Ваш контроллер возвращает полный индексный вид.Если вы поместите свой твит-бокс в частичное представление, ваше действие ajax должно возвращать это частичное представление.

...