gpt4 book ai didi

c# - 输入无效 .Net Core Web API

转载 作者:IT王子 更新时间:2023-10-29 04:26:24 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,几乎花了 4 个小时都没有运气。

我有一个简单的 Web API,我在提交表单时调用它。

API-

// POST: api/Tool
[HttpPost]
public void Post([FromBody] Object value)
{
_toolService.CreateToolDetail(Convert.ToString(value));
}

HTML-

<!DOCTYPE html>
<html>
<body>

<h2>HTML Forms</h2>
<form name="value" action="https://localhost:44352/api/tool" method="post">
First name:<br>
<input type="text" id="PropertyA" name="PropertyA" value="Some value A">
<br>
Last name:<br>
<input type="text" id="PropertyB" name="PropertyB" value="Some value B">
<br><br>
<!--<input type="file" id="Files" name="Files" multiple="multiple"/>-->
<br><br>
<input type="submit" value="Submit">

</form>
</body>
</html>

当我点击提交按钮时,出现以下错误-

{"":["The input was not valid."]}

启动类中的配置-

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSingleton<IConfiguration>(Configuration);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseMvc();
}

这只发生在 POST 请求中。 GET 请求工作正常。在 Postman REST 客户端中测试时出现同样的问题。有什么帮助吗?如果我可以提供更多详细信息,请告诉我。

最佳答案

不要使用 FromBody。您提交为 x-www-form-urlencoded(即标准 HTML 表单发布)。 FromBody 属性用于 JSON/XML。

您不能同时处理来自同一操作的标准表单提交 JSON/XML 请求主体。如果您需要双向请求操作,则需要两个单独的端点,一个带有装饰有 FromBody 的参数,一个没有。没有别的办法。您的操作的实际功能可以分解为两个操作都可以使用的私有(private)方法,以减少代码重复。

关于c# - 输入无效 .Net Core Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211646/

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