Я использую встроенный шаблон проекта для React и ASP.NET Core из Visual Studio 2022, который создает клиентское приложение React и серверное приложение ASP.NET Core.
Я хотел протестировать добавление нового контроллера помимо контроллера прогноза погоды по умолчанию и воздействие на эту конечную точку с помощью перехватчика useEffect в файле app.jsx. Когда я добавляю асинхронную функцию для целевой точки «Тест», конечная точка в моем новом контроллере никогда не попадает в цель. Я пытался структурировать контроллер так же, как контроллер прогноза погоды, но новый контроллер никогда не запускается от клиента. Я могу достичь конечной точки, используя чванство. Я чувствую, что есть простое решение этой проблемы — какая-то регистрация контроллера, которой мне не хватает, но я не могу ее найти.
Это мой app.jsx код> файл. Я добавил ловушку useState для установки и получения константы testMessage, а также асинхронный метод populateTestData для получения данных из контроллера Test. Get endpoint для установки testMessage.. р>
import { useEffect, useState } from 'react';
import './App.css';
function App() {
const [forecasts, setForecasts] = useState();
const [testMessage, setTestMessage] = useState();
useEffect(() => {
populateWeatherData();
populateTestData();
}, []);
const contents = forecasts === undefined
?
Loading... Please refresh once the ASP.NET backend has started. See https://aka.ms/jspsintegrationreact for more details.
:
Date
Temp. (C)
Temp. (F)
Summary
{forecasts.map(forecast =>
{forecast.date}
{forecast.temperatureC}
{forecast.temperatureF}
{forecast.summary}
)}
;
const message = testMessage === undefined ?
Loading from Server...
: {testMessage};
return (
Weather forecast
This component demonstrates fetching data from the server.
{contents}
{message}
);
async function populateWeatherData() {
const response = await fetch('weatherforecast');
const data = await response.json();
setForecasts(data);
}
async function populateTestData() {
const response = await fetch('test');
const data = await response.json();
setTestMessage(data);
}
}
export default App;
Это мой TestController. Я попытался структурировать это аналогично стандартному WeatherForecastController. Функция populateTestData должна достичь конечной точки Get() в этом контроллере, но моя точка останова при вызове этого метода никогда не будет достигнута
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace ReactDotNetPractice.Server.Controllers
{
[Route("[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly ILogger _logger;
public TestController(ILogger logger)
{
_logger = logger;
}
[HttpGet(Name = "GetTest")]
public string Get()
{
return "This is the test message you should receive from the Test endpoint.";
}
}
}
WeatherForecastController — в основном это для справки. Конечная точка Get в этом контроллере обрабатывается методом populateWeatherData в app.jsx каждый раз при загрузке страницы, как и должно быть:
using Microsoft.AspNetCore.Mvc;
namespace ReactDotNetPractice.Server.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger _logger;
public WeatherForecastController(ILogger logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}
Файл Program.cs, если это полезно, хотя я не вижу нигде, где бы конкретно настраивался WeatherForecastController
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseDefaultFiles();
app.UseStaticFiles();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.MapFallbackToFile("/index.html");
app.Run();
Подробнее здесь: https://stackoverflow.com/questions/791 ... t-from-cli
Шаблон проекта React + ASP.NET Core не может подключиться к новой конечной точке контроллера от клиента ⇐ C#
Место общения программистов C#
1731771362
Anonymous
Я использую встроенный шаблон проекта для React и ASP.NET Core из Visual Studio 2022, который создает клиентское приложение React и серверное приложение ASP.NET Core.
Я хотел протестировать добавление нового контроллера помимо контроллера прогноза погоды по умолчанию и воздействие на эту конечную точку с помощью перехватчика useEffect в файле app.jsx. Когда я добавляю асинхронную функцию для целевой точки «Тест», конечная точка в моем новом контроллере никогда не попадает в цель. Я пытался структурировать контроллер так же, как контроллер прогноза погоды, но новый контроллер никогда не запускается от клиента. Я могу достичь конечной точки, используя чванство. Я чувствую, что есть простое решение этой проблемы — какая-то регистрация контроллера, которой мне не хватает, но я не могу ее найти.
Это мой app.jsx код> файл. Я добавил ловушку useState для установки и получения константы testMessage, а также асинхронный метод populateTestData для получения данных из контроллера Test. Get endpoint для установки testMessage.. р>
import { useEffect, useState } from 'react';
import './App.css';
function App() {
const [forecasts, setForecasts] = useState();
const [testMessage, setTestMessage] = useState();
useEffect(() => {
populateWeatherData();
populateTestData();
}, []);
const contents = forecasts === undefined
?
Loading... Please refresh once the ASP.NET backend has started. See [url=https://aka.ms/jspsintegrationreact]https://aka.ms/jspsintegrationreact[/url] for more details.
:
Date
Temp. (C)
Temp. (F)
Summary
{forecasts.map(forecast =>
{forecast.date}
{forecast.temperatureC}
{forecast.temperatureF}
{forecast.summary}
)}
;
const message = testMessage === undefined ?
Loading from Server...
: {testMessage};
return (
Weather forecast
This component demonstrates fetching data from the server.
{contents}
{message}
);
async function populateWeatherData() {
const response = await fetch('weatherforecast');
const data = await response.json();
setForecasts(data);
}
async function populateTestData() {
const response = await fetch('test');
const data = await response.json();
setTestMessage(data);
}
}
export default App;
Это мой TestController. Я попытался структурировать это аналогично стандартному WeatherForecastController. Функция populateTestData должна достичь конечной точки Get() в этом контроллере, но моя точка останова при вызове этого метода никогда не будет достигнута
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace ReactDotNetPractice.Server.Controllers
{
[Route("[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly ILogger _logger;
public TestController(ILogger logger)
{
_logger = logger;
}
[HttpGet(Name = "GetTest")]
public string Get()
{
return "This is the test message you should receive from the Test endpoint.";
}
}
}
WeatherForecastController — в основном это для справки. Конечная точка Get в этом контроллере обрабатывается методом populateWeatherData в app.jsx каждый раз при загрузке страницы, как и должно быть:
using Microsoft.AspNetCore.Mvc;
namespace ReactDotNetPractice.Server.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger _logger;
public WeatherForecastController(ILogger logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}
Файл Program.cs, если это полезно, хотя я не вижу нигде, где бы конкретно настраивался WeatherForecastController
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseDefaultFiles();
app.UseStaticFiles();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.MapFallbackToFile("/index.html");
app.Run();
Подробнее здесь: [url]https://stackoverflow.com/questions/79195440/react-asp-net-core-project-template-cant-hit-new-controller-endpoint-from-cli[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия