- У меня есть представление под названием Wx JS .cs html. Я использую JavaScript, чтобы получить JSON данных. Данные JSON отправляются на контроллер Wx
- Контроллер Wx обрабатывает данные JSON и, используя Twilio, я получаю текстовое сообщение, которое ясно указывает на то, что код работает в этом контроллере.
Вопрос / вопрос, который у меня есть, пожалуйста, как мне заставить контроллер Wx перенаправить из представления Wx JS .cs html Razor в представление Wx.cs html Razor для представления эти данные?
Я установил точку останова на странице Wx.chstml - управление программой опускается до этой точки останова - насколько я могу судить, это последняя точка останова, которая будет нажата. Тем не менее, страница Wx.chstml не загружается, браузер продолжает отображать страницу Wx JS .cs html.
Я что-то упустил (вероятно, очевидно), так как я работал над найти решение для этого часами :-(
Заранее спасибо !! :-) Wx JS Razor View
<!doctype html>
<title>Example</title>
<script>
var xhr = new XMLHttpRequest();
var url = "https://cors-anywhere.herokuapp.com/https://www.511virginia.org/data/geojson/icons.rwis.geojson";
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var jsonData = JSON.parse(xhr.responseText);
showWeather(jsonData);
}
};
xhr.open("GET", url, true);
xhr.send();
function showWeather(data) {
var output = "<ul>";
var i;
for (var i in data.features) {
output += "<li>" + data.features[i].id + "</li>";
}
output += "</ul>";
document.getElementById("wxList").innerHTML = output;
$.ajax({
url: '/Home/Wx/',
data: JSON.stringify(data),
type: 'POST',
traditional: true,
contentType: 'application/json',
success: function (data) {
$('#message').html("Success!");
}
});
}</script>
<div id="wxList"></div>
** Home WX Controller **
[HttpPost]
public IActionResult Wx([FromBody] RootObject data)
{
System.Net.WebClient client = new System.Net.WebClient();
List<ConcerningWeatherData> WxStatDataList = new List<ConcerningWeatherData>();
RootObjectItteration ObjItteratrion = new RootObjectItteration();
WxStatDataList = ObjItteratrion.ItterateThroughRootObjectSettingValues(data, WxStatDataList);
List<ConcerningWeatherData> SortedList = new List<ConcerningWeatherData>();
try
{
SortedList = WxStatDataList.OrderBy(o => o.indexId).ToList();
ViewBag.WxStatDataList = SortedList;
}
catch (Exception ex)
{ ex.ToString(); }
try
{
TwilioSendText SendText = new TwilioSendText();
string sendToUser = SendText.ParseThroughWhatWxToSendUser(SortedList);
TwilioSendText numbers = new TwilioSendText();
List<String> listOfPhoneNumbers = new List<String>();
listOfPhoneNumbers = numbers.listOfPhoneNumbersToSendTo(listOfPhoneNumbers);
// TURN TWILIO SEND TEXT ON OR OFF HERE:
SendText.sendTextMessages(sendToUser, listOfPhoneNumbers);
}
catch (Exception ex)
{ ex.ToString(); }
//return View();
return View("Wx", "Home");
//return View();
// return Redirect("https://localhost:5001/Home/Wx.cshtml");
}
И представление, которое я пытаюсь заставить контроллер направить на Wx.cs html (у меня есть идентичная страница Weather.cs html и когда я использую. NET Ядро для заполнения JSON it отображает эту страницу Weather.cs html) Опять же, Twilio отправляет мне текст со всеми данными, поэтому я знаю, что синтаксический анализ JSON работает.
@{
ViewData["Title"] = "C-Ville West";@*Privacy Policywas Privacy.cshtml*@
}
@*<h1>@ViewData["Title"]</h1>*@
<p></p>
@* loop over viewbag object *@
@foreach (var x in ViewBag.WxStatDataList)
{
// wx station name & description
<b>@x.description @x.name</b> @Html.Raw("<font color=#A9A9A9>(") @x.id @Html.Raw(")</font><br />")
// check station for bad / dangerous weather
@*x.weather_station_has_potentially_dangerous_weather @Html.Raw("<br />")*@
@if (@x.weather_station_has_potentially_dangerous_weather == true)
{
// then output any potentially dangerous weather
@Html.Raw("<font color=#ff0000>")@x.weather_stations_potentially_dangerous_conditions @Html.Raw("</font><br />");
}
// visibility
if (x.dont_show_visibility == false)
{
if (@x.visibility_show_value == true && @x.visibility_at_onePointTwoMiles_message_showTF == false)
{
@x.visibility @Html.Raw(" visibility<br />")
}
else if (@x.visibility_at_onePointTwoMiles_message_showTF = true)
{
@x.visibility_at_onePointTwoMiles_message @Html.Raw(" visibility<br />")
}
else
{
@x.visibility_inoperative.ToString() @Html.Raw("<br />")
}
}
else
{
@x.visibility_inoperative.ToString() @Html.Raw("<br />")
}
// air temp
if (x.dont_show_air_temperature ==false)
{
if (@x.air_temperature_show_value == true)
{
@x.air_temperature @Html.Raw("° air temperature<br />")
}
else
{
@x.air_temperature_inoperative.ToString() @Html.Raw("<br />")
}
}
// surface temp
if (@x.dont_show_surface_temperature == false)
{
if (@x.surface_temperature_show_value == true)
{
@x.surface_temperature @Html.Raw("° surface temperature<br />")
}
else
{
@x.surface_temperature_inoperative.ToString() @Html.Raw("<br />")
}
}
// surface conditions
if (@x.dont_show_surface_condition == false)
{
@x.surface_condition @Html.Raw("<br />")
}
// dewpoint
if (@x.dewwpoint_temperature_show_value == true)
{
@x.dewpoint_temperature @Html.Raw("° dewpoint temperature<br />")
}
else
{
@x.dewpoint_temperature_inoperative @Html.Raw("<br />")
}
// relative humidity
if (@x.relative_humidity_show_value == true)
{
@x.relative_humidity @Html.Raw("℅: relative humidity<br />")
}
else
{
@x.relative_humidity_inoperative @Html.Raw("<br />")
}
// wind direction -- speed -- gusts to
if (@x.dont_show_wind == false)
{
@x.all_wind_data @Html.Raw("<br />")
}
}
@*measurements in disclaimer*@
Temperatures in Fahrenheit, windpeeds in MPH. @Html.Raw("<br />")