[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¶m2=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