简单的Ajax调用回发整个页面

时间:2013-12-06 12:55:33

标签: c# asp.net-mvc asp.net-mvc-5

我想使用Ajax以异步方式调用和返回控制器操作中的数据。

在下面的示例中,点击ActionLink时,它会回复到只有“Hello!”的新页面。我怎样才能更新div?

控制器:

public class HelloAsyncController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public string Hello()
    {
        return "Hello!";
    }
}

查看:

@Ajax.ActionLink("Say Hello", "Hello", "HelloAsync",
    new AjaxOptions()
    {
        UpdateTargetId = "HelloDiv"
    })

<div id="HelloDiv"></div>

包含在_Layout.cshtml中:

<script src="~/Scripts/modernizr-2.6.2.js"></script>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

我正在使用MVC 5.

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用

@Ajax.ActionLink(
    "Say Hello", 
    "Hello", 
    "HelloAsync", 
    new AjaxOptions
    {
        UpdateTargetId="HelloDiv",
        HttpMethod = "Get",
        InsertionMode = InsertionMode.Replace 
    })

我的问题可能是

  

UpdateTargetID的内容必须在局部视图中   需要从Controller Action调用部分视图。 。你需要使用一个   局部视图。

同时检查

  

检查文件MicrosoftAjax.js和MicrosoftMvcAjax.js是否真的   出现在../../Scripts文件夹中。