即使使用SupportsGet = true,查询字符串绑定在RazorPage上也不起作用

时间:2018-10-19 17:32:58

标签: asp.net-core-mvc razor-pages

这是我的页面...

public class MyPage : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public DateTime? StartDate { get; set; }

        [BindProperty(SupportsGet = true)]
        public DateTime? EndDate { get; set; }

        public async Task<IActionResult> OnGetAsync()
        {
            if (ModelState.IsValid)
            {
               await Task.Delay(1);
            }

            return Page();
        }
    }

这是查询字符串...

  

?StartDate = 29%2F10%2F2018&EndDate = 31%2F10%2F2018

但是属性始终为空。

我想念什么?

1 个答案:

答案 0 :(得分:1)

模型绑定器将难以处理格式为dd / MM / yyyy的日期值,或者是MM / dd / yyyy,它会在放弃并默默失败之前询问自己。您最好将日期作为yyyy-MM-dd传递:

?StartDate=2018-10-29&EndDate=2018-10-31

如果您无法控制日期格式,则可以自己解析这些值并将其分配给PageModel属性。