@ Ajax.ActionLink不替换部分视图

时间:2014-07-23 08:19:40

标签: ajax asp.net-mvc

当我点击该链接时,我想用@ Ajax.actionLink替换一个带有视图的div。但它无效。

这是我的链接

<div>
 <li>   @Ajax.ActionLink("settings","Create","Test",


new AjaxOptions { UpdateTargetId = "components" , InsertionMode = InsertionMode.Replace}
)  </li>
</div>

和我的目标div

<div id="components">
</div>

我还在布局中包含了js文件

    <script src="~/Scripts/Controls/jquery-2.0.3.min.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
    <script src="~/Scripts/modernizr-2.5.3.js"></script> 

和我的行动结果

    public PartialViewResult Create()
    {

        return PartialView("Create");
    }

4 个答案:

答案 0 :(得分:11)

对于安装了Microsoft.jQuery.Unobtrusive.Ajax(通过nu-get或不通过nu-get)并希望通过捆绑使用它的人,请不要忘记:

  • 在bundleconfig中添加库。例如:

            bundles.Add(new ScriptBundle("~/bundles/unobtrusive").Include(
                     "~/Scripts/jquery.unobtrusive*"));
    
  • 渲染它(我的渲染在_Layout.cshtml中):

    @ Scripts.Render( “〜/捆绑/不显眼”)

我知道这是一个旧帖子,但我猜是不能添加其他信息。

答案 1 :(得分:7)

信不信由你,除了一件事以外,我已经正确设置了一切:

  

要安装Microsoft jQuery Unobtrusive Ajax,请运行以下命令   包管理器控制台中的命令:

PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2 

说明在这里:https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/

答案 2 :(得分:1)

当您撰写new AjaxOptions{ --- }时,请将其写为:

new AjaxOptions() { .... } and write HttpMethod also in ajaxoptions. 

ajax.actionlink的正确用法是:

@Ajax.ActionLink("Text", // <-- Text to display
                "Action method", // <-- Action Method Name
                "Controller Name", //  <--Controller Name
                new AjaxOptions()
                {
                 UpdateTargetId="CustomerList", // <-- DOM element ID to update
                 InsertionMode = InsertionMode.Replace, // <-- Replace the content of DOM element
                 HttpMethod = "GET" // <-- HTTP method(Post/Get)
                })

答案 3 :(得分:1)

如果是MVC5? 确保包含正确的不显眼的ajax包 即,您可以使用最新的软件包安装NuGet软件包管理器控制台

Install-Package Microsoft.jQuery.Unobtrusive.Ajax

安装最新版本后,它开始为我工作。