0

我一直没有使用 jQuery,但是我有这个表单,它可以毫无问题地向我的 MVC 控制器提交数据,正在保存数据,并且我的成功功能正在被击中,因为如果我发出警报(“事情” ) 在那里,它被解雇了。我的 ClearFields() 函数也被解雇了。但是,我使用 ajax 的 GetSamples(projId) 函数为我获取了 projectId 的示例列表,没有触发,但它确实在页面加载时触发。

下面是我的代码......如果有人能指出我正确的方向,那将是很好的,因为我不明白为什么它不工作

 $(function () {

    var projectId = "@Model.Project.Id";

    GetSamples(projectId);

    $("#refreshButton").button().click(function () {
        GetSamples(projectId);
    });

    $("#saveSampleButton").button().click(function () {
        $.ajax({
            url: "/PreRegistration/AddSample",
            type: "POST",
            data: { projectId: projectId,
                customerSampleId: $("#CustomerSampleId").val(),
                customerSampleId2: $("#CustomerSampleId2").val(),
                customerSampleId3: $("#CustomerSampleId3").val(),
                customerSampleId4: $("#CustomerSampleId4").val(),
                matrix: $("#Matrix").val(),
                product: $("#Product").val(),
                productGrade: $("#ProductGrade").val(),
                dueDate: $("#DueDate").val()
            },
            success: function (response, projectId, jqXHR) {
                alert("done");
                ClearFields();
                GetSamples(projectId);
            },
            error: function (xyz) {
                alert("Something went wrong : " + xyz.val());
            }               
        });

        return false;
    });



    $("#DueDate").datepicker({ dateFormat: "dd/mm/yy" });

    function ClearFields() {
        $("#CustomerSampleId").val("");
        $("#CustomerSampleId2").val("");
        $("#CustomerSampleId3").val("");
        $("#CustomerSampleId4").val("");
        $("#Matrix").val("");
        $("#Product").val("");
        $("#ProductGrade").val("");
        $("#DueDate").val("");
    }

    function GetSamples(pId) {
        $.ajax({
            url: "/PreRegistration/GetSamples",
            type: "POST",
            data: { Id: pId },
            success: function (response) {
                $("#ProjectSamples tbody").replaceWith(response)
            }
        });
    }

});

我现在对代码进行了一些更改,因为我可以看到部分导致我的问题的原因,GetSamples() 函数似乎正在触发,但它没有更新表格......

$(function () {

    var projectId = "@Model.Project.Id";

    GetSamples(projectId);

    $("#saveSampleButton").button().click(function () {
        $.ajax({
            url: "/PreRegistration/AddSample",
            type: "POST",
            data: { projectId: projectId,
                customerSampleId: $("#CustomerSampleId").val(),
                customerSampleId2: $("#CustomerSampleId2").val(),
                customerSampleId3: $("#CustomerSampleId3").val(),
                customerSampleId4: $("#CustomerSampleId4").val(),
                matrix: $("#Matrix").val(),
                product: $("#Product").val(),
                productGrade: $("#ProductGrade").val(),
                dueDate: $("#DueDate").val()
            },
            success: function (projectId) {
                ClearFields();
                GetSamples(projectId);
            },
            error: function (xyz) {
                alert("Something went wrong : " + xyz.val());
            }
        });

        return false;
    });



    $("#DueDate").datepicker({ dateFormat: "dd/mm/yy" });

    function ClearFields() {
        $("#CustomerSampleId").val("");
        $("#CustomerSampleId2").val("");
        $("#CustomerSampleId3").val("");
        $("#CustomerSampleId4").val("");
        $("#Matrix").val("");
        $("#Product").val("");
        $("#ProductGrade").val("");
        $("#DueDate").val("");
    }

    function GetSamples(projectId) {
        $.ajax({
            url: "/PreRegistration/GetSamples",
            type: "POST",
            data: { Id: projectId },
            success: function (response) {
                $("#ProjectSamples tbody").replaceWith(response)
            }
        });
    }

});

已调试,并且 projectId (1) 正在正确传递给函数。在 VS 中,在我的控制器操作中,正在获取数据并将其传递回视图......但没有重新填充表

4

0 回答 0