Подтвердить что ты не робот

Загрузите частичный вид в div

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

контроллер

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index()
{
    return View();
}

public ActionResult Test()
{
    return PartialView("Test");
}

Просмотр

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>

@using (Ajax.BeginForm("Test", "Home", new AjaxOptions { InsertionMode=InsertionMode.Replace, UpdateTargetId = "mydiv" }))
{    
    @Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions{ });
}

<div id="mydiv">
    @Html.Partial("Test")
</div>

PartialView

<h1>Test</h1>
4b9b3361

Ответ 1

Несколько замечаний о вашем коде:

  • Ajax.* помощники в ASP.NET MVC 3 RC2 больше не используют MS AJAX, который устарел в пользу jQuery, поэтому ваши включения script неверны. Вам нужно включить jquery
  • У вас есть форма ajax без кнопки отправки и ajax-ссылки внутри этой формы. Это не имеет никакого смысла. Используйте либо форму ajax, либо ссылку ajax.

Итак, ваш код может выглядеть примерно так:

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

@Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions { 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "mydiv"
})

<div id="mydiv">
    @Html.Partial("Test")
</div>

Ответ 2

Добавьте эту строку на свою страницу (главная страница или макет)

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

сразу после строки MicrosoftMvcAjax.js.

Ответ 3

Я думаю, вы должны использовать <input type="submit" /> вместо @Ajax.Actionlink(...)

в MVC4 вы можете добавить пакет @Scripts.Render("~/bundles/jqueryval") сразу после @Scripts.Render("~/bundles/jquery") или добавить ссылку script в разделе script в режиме просмотра страницы, как показано ниже:

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

    }

Удачи.

Ответ 4

Ваша часть должна находиться в форме ajax