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

问题描述 投票:0回答:1
[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();
            });

有人知道我在想什么吗?

string asp.net-core http-post guid
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.