【问题标题】:Load partial view into div将部分视图加载到 div
【发布时间】:2010-12-29 19:10:00
【问题描述】:

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

部分视图

<h1>Test</h1>

【问题讨论】:

    标签: ajax asp.net-mvc


    【解决方案1】:

    关于您的代码的几点说明:

    • 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>
    

    【讨论】:

      【解决方案2】:

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

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

      就在 MicrosoftMvcAjax.js 行之后。

      【讨论】:

      • 我一直在努力解决这个问题,这个答案解决了我的问题。谢谢!
      【解决方案3】:

      我认为你应该使用&lt;input type="submit" /&gt; 而不是@Ajax.Actionlink(...)

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

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

      祝你好运。

      【讨论】:

        【解决方案4】:

        您的部分需要在 ajax 表单内

        【讨论】:

        • 我在控制器中检查 Request.IsAjaxRequest() 并且它返回为假。表单标记是这样的。
        猜你喜欢
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 2013-10-30
        • 2014-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多