У меня есть оператор 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>