gpt4 book ai didi

c# - .NET Core React 项目中的 MVC 路由没有选择我的 Controller

转载 作者:行者123 更新时间:2023-12-04 17:33:48 24 4
gpt4 key购买 nike

我正在学习如何使用 ASP.NET Core 创建 React 应用程序。作为一个新手,我从头开始尝试让“Hello World”显示在主页上。我使用 Visual Studio 的默认 React.js 项目模板来开始。路由设置为默认值。这是我的文件:

首页.js:

import React, { Component } from 'react';

export class Home extends Component {

constructor(props) {
super(props);
this.state = { message: "" };

fetch('api/Home/Message')
.then(response => response.json())
.then(data => {
this.setState({ message: data });
});

}

render () {
return (

<h1>{this.state.message}</h1>

);
}
}

HomeController.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;


namespace TestingReactDotNet.Controllers
{
[Route("api/[controller]")]
public class HomeController : Controller
{
[HttpGet]
public async Task<IActionResult> Message()
{
var response = "Hello World";
return Ok(response);
}
}
}

问题是解析为 Json 的 HTTP 响应不正确。为了尝试调试,我已经将它的 console.logged 出来,看起来 response.json())正在检索默认 public/index.html 中的所有文本模板应用程序附带的文件。有谁知道这是为什么?

如果我遗漏了一些非常明显的东西,我深表歉意 - 我使用的是 Mac,因此文件结构和 Visual Studio IDE 非常不同,我很难理解已经存在的许多教程/答案。

最佳答案

要点击您的 Message() 函数,您必须将 HttpGet 发送到 'api/Home' 而不是 'api/Home/Message' .

如果您希望您的端点是 'api/Home/Message',那么您必须为 Message() 函数指定路由,如下所示:

// api/Home/Message
[HttpGet, Route("Message")]
public async Task<IActionResult> Message()

关于c# - .NET Core React 项目中的 MVC 路由没有选择我的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57516250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com