MVC3 с Ajax - вернуть данные, не «подключенные», в нужное место - PullRequest
2 голосов
/ 25 ноября 2011

Я пытаюсь начать работу с Ajax на MVC

На моем главном экране у меня есть следующий код:

@Ajax.ActionLink("Click here to get the data","LoadData",
    new AjaxOptions
    {
      UpdateTargetId = "dataPanel",
      InsertionMode = InsertionMode.InsertAfter,
      HttpMethod="GET"
    })


<div id="dataPanel">
</div> 

Я создал действие контроллера, как показано ниже:

public PartialViewResult LatestReview()
{
  var myData = GetMyData();
  return PartialView("_PartialData", myData);
}

_PartialData определяется следующим образом:

@model MyApp.Models.Data
<div>
@if (Model == null)
{    
    <p>There is no data yet</p>
}
else
{
    <p>
    @Model.Body
    </p>          
}
</div>

Но когда я нажимаю на ссылку, мои данные (представленные в _PartialData) полностью загружаются в браузер, заменяя исходную страницу (поэтому не внутри div dataPanel)

Когда я смотрю на исходный источник страницы (перед тем, как щелкнуть ссылку ajax), он видит действия ajax, определенные ниже:

<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="after" data-ajax-update="#dataPanel" href="/Home/LoadData">Click here to get the data</a>

<div id="dataPanel">
</div>

Что я делаю не так?

Спасибо

1 Ответ

1 голос
/ 25 ноября 2011

Я подозреваю, что вы забыли включить ненавязчивый сценарий jjery ajax на свою страницу:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

Именно этот скрипт имеет смысл для всего помощника Ajax. * В ASP.NET MVC 3. Без негоони генерируют стандартную разметку с атрибутами HTML5 data- *, которые используются сценарием.

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