Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Razor Pages-模型绑定复杂对象到路由参数问题_C#_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

C# Razor Pages-模型绑定复杂对象到路由参数问题

C# Razor Pages-模型绑定复杂对象到路由参数问题,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我在Asp.NETCore中为我的页面设置了一个相当简单的路由模板 @page "/Meetings" 除此之外,我还有一个表单设置来发布一些值 <form method="post"> <input asp-for="PageParameters.PageSize" /> @if (Model.XPaginationDto.PreviousPageLink != null) { <butt

我在Asp.NETCore中为我的页面设置了一个相当简单的路由模板

@page "/Meetings"
除此之外,我还有一个表单设置来发布一些值

 <form method="post">
        <input asp-for="PageParameters.PageSize" />
        @if (Model.XPaginationDto.PreviousPageLink != null)
        {
            <button type="submit" asp-route-pageNum="@(Model.XPaginationDto.CurrentPage - 1)" class="btn btn-dark text-light">Previous</button>
        }
        @for (var i = 1; i <= Model.XPaginationDto.TotalPages; i++)
        {
            <button type="submit" asp-route-pageNum="@i" class="btn btn-dark text-light">@i</button>
        }
</form>
发布表单时,PageSize属性被正确绑定,因为输入使用了
asp for
属性。但PageNum属性未绑定。这是令人惊讶的,因为模型绑定寻找表单、路由和查询数据来绑定属性

正在路由参数级别设置PageNum属性。当它被发回时,它就不起作用了

也就是说,当我尝试重定向到带有参数的页面时,它不会绑定PageNum属性

return RedirectToPage("/Meetings", new { PageParameters.PageNum, PageParameters.PageSize }); 
我当然可以做到以下几点:

public IActionResult OnPost(int? PageNum)
        {

            return RedirectToPage("/Meetings", new { PageNum, PageParameters.PageSize });
        }
发生重定向时,GET请求上的两个参数都被正确绑定。为什么表单帖子不能做同样的事情

我已经研究过了。这些示例都没有解释如何将复杂对象绑定到管线参数

public IActionResult OnPost(int? PageNum)
        {

            return RedirectToPage("/Meetings", new { PageNum, PageParameters.PageSize });
        }