【问题标题】:Ajax.Actionlink does not load PartialView, but simple ViewAjax.Actionlink不加载PartialView,而是简单的View
【发布时间】:2012-12-23 15:55:49
【问题描述】:

我一直在网上冲浪,但仍然无法弄清楚我的代码有什么问题以及为什么它不起作用。

代码如下:

public ActionResult FindUser()
    {
        if (Request.IsAjaxRequest())
        {
            return PartialView();
        }
        return View();
    }

加载一个PartialView,允许按名称查找用户:

@using (@Html.BeginForm("Find", "User"))
{
    @Html.TextBoxFor(u => u.UserName);
    @Html.HiddenFor(u => u.UserName);
    <input type="submit" value="Find" />
}

Index 视图有一个 Actionlink:

@Ajax.ActionLink("Find user","FindUser",new AjaxOptions { UpdateTargetId = "forAjax", InsertionMode = InsertionMode.Replace})
<div id="forAjax"></div>

我已经包含在视图中了

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

以及这些在我的配置中启用

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

但它仍然在新的“窗口”中加载我的 PartialView,但不在“查找用户”链接下方。我的浏览器中启用了 Javascript。我的代码有什么问题?

【问题讨论】:

    标签: asp.net-mvc-3 asp.net-ajax


    【解决方案1】:

    确保您也包含了jquery,并且您在之前完成了此操作,包括jquery.unobtrusive-ajax.js

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

    在您的局部视图中,您还有一个标准表单,而不是 AJAX 表单。当您提交此表单时,不会有任何 AJAX 请求。如果您希望此表单与 AJAX 请求一起提交,请确保您在部分中使用了 Ajax.BeginForm 而不是 Html.BeginForm

    @using (Ajax.BeginForm("Find", "User", new AjaxOptions { UpdateTargetId = "forAjax", InsertionMode = InsertionMode.Replace }))
    {
        @Html.TextBoxFor(u => u.UserName);
        @Html.HiddenFor(u => u.UserName);
        <input type="submit" value="Find" />
    }
    

    您应该检查的另一件事是您在浏览器中使用的 javascript 调试工具的网络和控制台选项卡。在“网络”选项卡中查找 javascript 错误以及可能的 404。

    【讨论】:

    • 不,我希望表单只是显示并像普通表单一样运行,而不是异步表单。不过谢谢!问题是因为没有包含这 2 个脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多