Ajax更新目标ID,但不是动作链接

时间:2013-06-10 19:19:45

标签: c# asp.net-mvc jquery

所以我之前使用过这个,但这是一个链接,点击链接后会出现这种情况

    Ajax.ActionLink("XXX", "UpdateGridView", new {  }, new AjaxOptions { UpdateTargetId = "configs"})
);

我想要的是JS中的函数做同样的事情,调用Action并给出UpdateTargetId,它将使用Action重新呈现该部分视图。

有可能吗?

谢谢

编辑:

 $.ajax({
            type: "POST",
            url: "AddUpdateConfigs",
            data: ({id: @Model.QueueMonitorConfigurationsID, pathType: $('#ddlConfigTypeName').val(), threshold:$('#ddlThreshold').val(), valueType:$('#ddlValueTypeName').val(), location: $('#txtbLocation').val(), limit: $('#txtbLimit').val(), config: $('#NewOrUpdate').val() }),
            dataType: 'application/json',
            statusCode: {
                404: function(){
                    alert("Data is duplicated");
                },
                405:function(){
                    alert("Location Path is not correct");
                },
                406: function(){
                    alert("Location Path has to be UNC path");
                },
                407: function(error){
                    alert(error);
                },
                410:function(result){
                    alert("Item added correctly");
                    $('#gridView').load('gvConfigurations');
                },
                411:function(result){
                    alert("Item updated correctly");
                }
            }
        });

所以我的代码有效,但当我的Action返回代码410时,我想调用Action并更新gridView gvConfigurations

1 个答案:

答案 0 :(得分:1)

您可以使用$.ajax()功能:

$.ajax({
    url: '/SomeController/UpdateGridView',
    type: 'GET',
    success: function(result) {
        $('#configs').html(result);
    }
});

$.get()等价物:

$.get('/SomeController/UpdateGridView', function(result) {
    $('#configs').html(result);
});

或使用load()的更短的等效内容:

$('#configs').load('/SomeController/UpdateGridView');

这3个jQuery片段都是这样做的:它们向/SomeController/UpdateGridView发送一个AJAX请求,并使用id="configs"更新DOM元素,并返回此AJAX调用返回的部分结果。