多个查询字符串参数不会仅在 .net 核心创建操作中绑定


[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string param1, string param2, [Bind("a,b,c")] object x)

我在表单帖子上获得了 param1 和 param2 的空值。

https://localhost:44342/ControllerName/Create?param1=45c18baa03b7414ea15021a5e3ea64a9&param2=37a29a748efc4d0ea0b41000c2f0b33c

.NET Core 版本 3.1

使用默认路由

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});

有谁知道我错过了什么?

为了从 url 获取值并将其值绑定到对象,首先应该将它们包含在 Bind 属性中,然后应该有适当的模型才能正确绑定值。

查看下面的代码

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("param1,param2")] MyClass x)
{
//Do anything
}
public class MyClass
{
public string param1 { get; set; }
public string param2 { get; set; }
}

您可以在官方文档中找到更多信息 https://learn.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-3.1

相关内容

  • 没有找到相关文章

最新更新