将部分视图加载到div中

use*_*394 12 ajax asp.net-mvc

我正在尝试将部分视图从调用视图加载到div中,但是部分视图会加载到新页面中.没有太多的代码,我已经尝试了其他帖子的各种方式,但它仍然加载到一个新的页面.所以我想我可能会遗漏一些基本的东西.

调节器

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

public ActionResult Test()
{
    return PartialView("Test");
}
Run Code Online (Sandbox Code Playgroud)

视图

<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>
Run Code Online (Sandbox Code Playgroud)

PartialView

<h1>Test</h1>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 23

关于您的代码的几点评论:

  • Ajax.*ASP.NET MVC 3 RC2中的帮助程序不再使用已弃用的MS AJAX而不支持jQuery,因此您的脚本包含错误.你需要包含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>
Run Code Online (Sandbox Code Playgroud)


Rez*_*aRa 12

将此行添加到您的页面(母版页或布局)

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

就在MicrosoftMvcAjax.js之后.


Rai*_*oad 0

您的部分需要位于 ajax 表单内