我怎么能在jQuery ajax上设置UpdateTargetId

时间:2012-04-26 12:27:48

标签: c# jquery asp.net-mvc-3

我想使用ajax渲染局部视图 提交按钮时,必须呈现局部视图 我可以使用ActionLink实现它,但我想通过JavaScript调用Action 但是下面的代码不起作用。调用Action但不呈现局部视图。

查看

@section script{
<script type="text/javascript">
    function test() {
        $.ajax(
        {
            type: "POST",
            url: "Test",
            data: "",
            success: function (result) { alert("OK!!"); },
            error: function (req, status, error) {
                alert("Damn!!");}
        });


    }
</script>
}

<input type="submit" onclick="test()" />
<div id="Container">

控制器

public ActionResult Test()
{
    if (Request.IsAjaxRequest())
    {
        return PartialView("ViewUserControl1");
    }
    return View();
}

部分查看ViewUserControl1

Hello world

这可行,但不是我想做的事

@Ajax.ActionLink("click me", "Test", new AjaxOptions { UpdateTargetId = "Container" })

1 个答案:

答案 0 :(得分:6)

您的网址可能不正确。它取决于您的路由设置     在Global.asax中定义。但通常你的网址应该是这样的     如果您的操作位于HomeController中,则为“/ Home / Test”。最好使用     url helper for action actions'urls:

...
url: '@Url.Action("Test", "Home")'
...

您可以通过下一种方式呈现您的部分:

...
success: function (result) { $('#elementId').html(result) },
...

此外,如果您想要更新块,请不要忘记先清除它,如果它包含不显眼的验证表格 - 解析表格。