将部分视图加载到div中

时间:2010-12-29 19:10:01

标签: ajax asp.net-mvc

我正在尝试将部分视图从调用视图加载到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>

4 个答案:

答案 0 :(得分:23)

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

    ASP.NET MVC 3 RC2中的
  • Ajax.*帮助程序不再使用已弃用的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>

答案 1 :(得分:12)

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

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

紧跟在MicrosoftMvcAjax.js之后。

答案 2 :(得分:1)

我认为您应该使用<input type="submit" />代替@Ajax.Actionlink(...)

在MVC4中,您可以在@Scripts.Render("~/bundles/jqueryval")之后添加包@Scripts.Render("~/bundles/jquery"),或者在页面视图的脚本部分添加脚本引用,如下所示:

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

    }

祝你好运。

答案 3 :(得分:0)

您的部分需要在ajax表格内