Оператор if / else не идет прямо к оператору else, если условие равно нулю в JavaScript - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть оператор If / Else, который проверяет, не равно ли @ Model.ProjectDetailId 0. Даже если значение @ Model.ProjectDetailId равно 0, компилятор продолжает go внутри блока операторов IF, он не go прямо к утверждению else. Таким образом, переменные внутри блока операторов IF выдают «System.NullReferenceException:« Ссылка на объект не установлена ​​для экземпляра объекта ». Цель этого кода / проекта - создать новое приложение или отредактировать существующее приложение , Когда @ Model.ProjectDetailId равен 0, это означает, что я создаю новое приложение, но если оно не равно нулю, это означает, что я редактирую существующее приложение.

Я помещаю код ниже. Пожалуйста, помогите.

<script type="text/javascript">
        var lati;
        var longi;
        var zoomLevel; 

        if (@Model.ProjectDetailId != 0) {
            lati = @Model.ProjectDetail.Latitude;
            longi = @Model.ProjectDetail.Longitude;

            require([
                "esri/WebMap",
                "esri/config",
                "esri/views/MapView",
                "esri/Graphic",
                "esri/layers/GraphicsLayer"
            ], function (WebMap, esriConfig, MapView, Graphic, GraphicsLayer) {
                esriConfig.portalUrl = "https://portal.environment.gov.za/portal";
                var map = new WebMap({
                    //basemap: "topo-vector"
                    portalItem: {
                        // autocasts as new PortalItem()
                        id: "04582be14885483da48f29398960f653"
                    }
                });
                var view = new MapView({
                    container: "viewDiv",
                    map: map,
                    center: [@Model.ProjectDetail.Longitude, @Model.ProjectDetail.Latitude],
                    zoom: 13
                });
                var graphicsLayer = new GraphicsLayer();
                map.add(graphicsLayer);

                // Create a point
                var point = {
                    type: "point",
                    longitude: @Model.ProjectDetail.Longitude,
                    latitude: @Model.ProjectDetail.Latitude
                };
                var simpleMarkerSymbol = {
                    type: "simple-marker",
                    color: "red", // orange
                    size: 8,
                    style: "circle", // default is a circle
                    outline: {
                        color: [255, 255, 0], // white
                        width: 1
                    }
                };
                var pointGraphic = new Graphic({
                    geometry: point,
                    symbol: simpleMarkerSymbol
                });
                graphicsLayer.add(pointGraphic);
            });

        }
        else {
            require(["esri/views/MapView",
                "esri/WebMap", "esri/config",
                "esri/widgets/Sketch",
                "esri/layers/GraphicsLayer"],

                function (MapView, WebMap, esriConfig, Sketch, GraphicsLayer) {

                    esriConfig.portalUrl = "https://portal.environment.gov.za/portal";
                    var webmap = new WebMap({
                        portalItem: {
                            id: "04582be14885483da48f29398960f653"
                        }
                    });

                    var graphicsLayer = new GraphicsLayer();

                    var view = new MapView({
                        map: webmap,
                        //zoom: 14,
                        container: "viewDiv"
                    });

                    var symbol = {
                        type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
                        style: "circle",
                        color: "blue",
                        size: "8px", // pixels
                        outline: { // autocasts as new SimpleLineSymbol()
                            color: [255, 255, 0],
                            width: 1 // points
                        }
                    };

                    webmap.layers.add(graphicsLayer);

                    var sketch = new Sketch({
                        layer: graphicsLayer,
                        view: view,
                        symbol: symbol,
                        creationMode: "update",
                        availableCreateTools: ["point"]
                        //container: "viewDiv"
                    });

                    view.ui.add(sketch, {
                        position: "top-right"
                    });

                    //Listen to sketch widget's create event.

                    sketch.on('create', function (event) {
                        // check if the create event's state has changed to complete indicating
                        // the graphic create operation is completed.
                        if (event.state === "complete") {

                            if (view.zoom >= 11) {
                                let gra = event.graphic.clone();
                                event.graphic.layer.removeAll();
                                gra.symbol.color = "red";
                                gra.layer.add(gra);
                                console.log(view.zoom);
                                console.log("X = ", gra.geometry.x);
                                console.log("Y = ", gra.geometry.y);
                                console.log("Lat = ", event.graphic.geometry.latitude);
                                console.log("Long = ", event.graphic.geometry.longitude);
                                lati = event.graphic.geometry.latitude;
                                longi = event.graphic.geometry.longitude;
                                zoomLevel = view.zoom;
                                debugger;
                            }
                            else {
                                alert("please zoom in");
                                event.graphic.layer.remove(event.graphic);
                            }
                        }
                    });
                });
        }

            

        function saveCoordinates() {
            debugger;
            $("#lat").val(lati);
            $("#long").val(longi);
        };
    </script>
...