如何在ASP Core ReactJS应用中调用帖子?
P粉733166744
P粉733166744 2023-08-17 17:23:05
0
1
614
<p>我目前在我的reactjs javascript文件中有以下内容</p> <pre class="brush:php;toolbar:false;">details.js const response = await fetch('users');</pre> <p>这将调用下面的mvc控制器</p> <p>UsersController.cs</p> <pre class="brush:php;toolbar:false;">private readonly ILogger<userController> _logger; public userController(ILogger<userController> logger) { _logger = logger; } [HttpGet] public IEnumerable<user> Get() { <code goes here> }</pre> <p>问题是fetch调用了Get方法,我如何调用控制器中的其他方法呢? 所以如果我还有一些类似下面的方法:</p> <pre class="brush:php;toolbar:false;">[HttpPost] public IEnumerable<user> UserDetails(string Id) { <code goes here> } [HttpPost] public IEnumerable<user> UserInfo(string name, string Id ) { <code goes here> } [HttpId] public IEnumerable<user> UserId(string firstname, string lastname, string companyId) { <code goes here> }</pre> <p>我如何从details.js文件中调用这些方法呢?</p> <p>像下面这样吗?</p> <pre class="brush:php;toolbar:false;">const response = await fetch('users/UserInfo'); ?</pre>
P粉733166744
P粉733166744

全部回复(1)
P粉762447363

你需要告诉.NET框架有关端点参数的信息,并使用正确的HTTP方法进行调用。例如,稍微更改代码,可以将UserDetails方法的Id参数用作URL段:

[HttpPost("{Id}"]
public IEnumerable<user> UserDetails(string Id)
{
   <code goes here>
}

HttpPost属性告诉.NET框架这是一个POST端点。注意HttpPost属性中的{Id}部分。它是一个占位符,你在调用端点时应该用实际的ID替换它。要调用该端点,你需要向"users/123"端点发送一个HTTP POST请求,其中"123"部分是{Id}占位符的替换。以下是一个示例:

fetch('users/123', { method: "POST" })

端点URL还可以包含查询字符串参数。例如,以下是如何使用查询字符串参数调用UserInfo端点:

[HttpPost("{Id}"]
public IEnumerable<user> UserInfo(string Id, [FromQuery] string name)
{
    <code goes here>
}

注意我们在UserInfo方法的"name"参数上添加了FromQuery属性。FromQuery属性告诉.NET框架URL应包含一个名为name的查询字符串参数。你的端点URL将变为"users/123?name=john",其中"123"是{Id}占位符的替换,name=john是将"name"查询字符串参数赋值为"john"。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板