Загрузите частичный вид в 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>
Ответы
Ответ 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