多个查询字符串参数仅在.net core创建操作中未绑定

时间:2019-12-14 16:47:45

标签: string asp.net-core http-post guid

[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核心版本3.1

使用默认路由

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

有人知道我想念什么吗?

1 个答案:

答案 0 :(得分:0)

为了从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://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-3.1