Ajax更新目标id,但不是操作链接

本文关键字:操作 链接 更新 目标 id Ajax | 更新日期: 2023-09-27 18:17:57

我之前用过这个,但这是一个链接,一旦链接被点击

    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");
                }
            }
        });

所以我的代码工作,但当我的动作返回代码410,我想调用Action和更新gridView gvConfigurations

Ajax更新目标id,但不是操作链接

您可以使用$.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请求,并使用这个AJAX调用返回的部分结果更新id="configs"的DOM元素。