首页 > 解决方案 > 为什么在提交并返回视图或redirectToAction之后找不到我的javascript方法

问题描述

这对我来说似乎很奇怪,我的 Edit_Dataset.cshtml 上有 javascript,效果很好!!这是底部带有我的 Javascript 的 Edit_Dataset.cshtml。我遇到的问题似乎很奇怪,我按下提交表单 [HttpPost] 的“SAVE”按钮,并在成功将表单数据保存到数据库后,无论我是执行 return 还是 redirectToAction(我基本上是从从头开始),找不到我的javascript函数。

示例:视图中有一个 AddContact 链接,带有 onclick("AddContact(id)"); 这将在屏幕上弹出模态框。有一个javascript函数:AddContact(id)

在此处输入图像描述

在“HttpPost”之前一切正常,但在“HttpPost”之后甚至执行“RedirectToAction(“Edit_Dataset”)”,我会收到以下错误和一个空模态。这是以下消息和空模态:

在此处输入图像描述

我的观点 :

@model ResearchDataInventoryWeb.Models.Dataset
@{
    ViewBag.Title = "Edit_Dataset";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm(new { id = "datasetForm" }))

{
   
    <div class="content">
        <div class="Panel-header"> EDIT Dataset (Admin) </div>
        <div class="Panel_container">


            <div class="section_container">
                <div class="col-md-6 col-sm-12 col-xs-12">
                    <div class="section_header2">
                        Contacts
                        <div style="float:right;">
                            <a href="#" onclick="AddContact(@Model.Dataset_ID);"><span class="link" style="padding-right:5px;">Add</span></a>
                        </div>
                    </div>

                    <div class="section_container2">
                        <div id="Container_ID">
                            @{ Html.RenderAction("Dataset_Contacts_Edit", "Dataset", new { id = Model.Dataset_ID }); }
                        </div>
                    </div>
                </div>
   

        <div class="modal fade" id="myModal">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">Contact</div>
                    </div>
                    <div class="modal-body" id="myModalBody">

                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>

        <div class="modal fade" id="myModal2">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">Document</div>
                    </div>
                    <div class="modal-body" id="myModalBody2">

                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>

        <div class="modal fade" id="myModal3">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">View Contact</div>
                    </div>
                    <div class="modal-body" id="myModalBody3">

                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>

        <div class="modal fade" id="myModal4">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">Save Changes Dialog</div>
                    </div>
                    <div class="modal-body" id="myModalBody4">
                        <p>Changes have been detected, do you want to save the form</p>
                        @Html.CheckBoxFor(model => model.Draft_Status)&nbsp;&nbsp;<span class="display-checkbox">Save as Draft</span>
                        <input type="submit" id="postValidation" value="Save Changes" />
                        <input type="button" id="cancelForm" value="Cancel" data-dismiss="modal" />
                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>

        <div class="modal fade" id="myModal5">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">No Changes Dialog</div>
                    </div>
                    <div class="modal-body" id="myModalBody5">
                        <p>No Changes have been detected, do you wish to continue</p>
                        <input type="submit" id="postValidation" value="Save Changes" />
                        <input type="button" id="cancelForm" value="Cancel" data-dismiss="modal" />
                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>

        @if (ViewBag.Success != null) { 
        <div class="modal fade" id="myModal6">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <a href="#" class="close" data-dismiss="modal">&times;</a>
                        <br />
                        <div class="Panel-header">Success Message</div>
                    </div>
                    <div class="modal-body" id="myModalBody6">
                        <p>Changes have been successfully Updated</p>
                        <input type="button" id="cancelForm" value="Ok" data-dismiss="modal" />
                    </div>
                    <div class="modal-footer">

                    </div>
                </div>
            </div>
        </div>
        }
    </div>



}

我的Javascript:

<script>
    
        
        var formChangeFlag = false;
        $('form').on('change', ':input', function (e) {
            //':input' selector get all form fields even textarea, input, or select
            formChangeFlag = true;
        });

        $("#saveDraft").click(function () {
            $("#save_draft_Id").val(true);
        })

        $("#postValidation").click(function () {
            $("#myModal4").modal("hide");
        })

        $("#postValidation1").click(function () {
            $("#myModal5").modal("hide");
    })

        $(window).on('load', function () {
            $('#myModal6').modal('show');
        });

        $("#saveForm").click(function (e) {
            e.preventDefault();

            if (formChangeFlag === true) {
                $("#myModal4").modal("show");
            }
            else {
                $("#myModal5").modal("show");
            }
        })


        $(function () {
            $(window).keydown(function (e) {
                if (e.keyCode == 13) {
                    e.preventDefault();
                    return false;
                }
            });
        })

    function reloadContactLinks() {
            
            let myurl = '@Url.Action("Dataset_Contacts_Edit", "Dataset", new { id = Model.Dataset_ID })';
            $.ajax({
                type: "GET",
                url: myurl,
                success: function (data, textStatus, jqXHR) {
                    $("#Container_ID").html(data);
                },
                error: function (requestObject, error, errorThrown) {
                    console.log(requestObject, error, errorThrown);

                }
            });
        }

        function reloadAttachmentLinks() {
            let myurl = '@Url.Action("Dataset_Attachments_Edit", "Dataset", new { id = Model.Dataset_ID })';
            $.ajax({
                type: "GET",
                url: myurl,
                success: function (data, textStatus, jqXHR) {
                    $("#Container2_ID").html(data);
                },
                error: function (requestObject, error, errorThrown) {
                    console.log(requestObject, error, errorThrown);

                }
            });
        }



        var AddContact = function (id) {

            var url = "../Dataset/AddContact/" + id
            $("#myModalBody").load(url, function () {
                $("#myModal").modal("show");
            })


        };

        var EditContact = function (id) {

            var url = "../Dataset/EditContact/" + id
            $("#myModalBody").load(url, function () {
                $("#myModal").modal("show");
            })


        };

        var AddDocument = function (id) {

            var url = "../Dataset/AddDocument/" + id
            $("#myModalBody2").load(url, function () {
                $("#myModal2").modal("show");
            })


        };

        var EditDocument = function (id) {

            var url = "../Dataset/EditDocument/" + id
            $("#myModalBody2").load(url, function () {
                $("#myModal2").modal("show");
            })


        };


        var ViewContact = function (ContactID) {

            var url = "../Dataset/ViewContact?Id=" + ContactID
            $("#myModalBody3").load(url, function () {
                $("#myModal3").modal("show");
            })


        };




        var checkButtonDt = function () {

            var SR_chkYes = document.getElementById("SR_ChkYes");
            var RE_chkYes = document.getElementById("RE_ChkYes");
            var DD_chkYes = document.getElementById("DD_ChkYes");
            var SR_chkNo = document.getElementById("SR_ChkNo");
            var RE_chkNo = document.getElementById("RE_ChkNo");
            var DD_chkNo = document.getElementById("DD_ChkNo");
            var SR_chkDt = document.getElementById("SR_Date");
            var RE_chkDt = document.getElementById("RE_Date");
            var DD_chkDt = document.getElementById("DD_Date");
            var DD_special = document.getElementById("DD_Special");

            SR_chkDt.style.display = SR_chkYes.checked ? "block" : "none";
            RE_chkDt.style.display = RE_chkYes.checked ? "block" : "none";
            DD_chkDt.style.display = DD_chkYes.checked ? "block" : "none";
            DD_special.style.display = DD_chkYes.checked ? "block" : "none";

            if (SR_chkNo.checked) {
                $("#Subscription_Renewal_DT").val("");
            }

            if (RE_chkNo.checked) {
                $("#Retention_Expiry_DT").val("");
            }

            if (DD_chkNo.checked) {
                $("#Data_Destruction_DT").val("");
                $("#Data_Destruction_Instructions").val("");
            }



        }

  
</script>

标签: javascriptmodel-view-controller

解决方案


推荐阅读