我们正在谈论ASPNET Core 2.0中的新Razor页面。
我想通过OnGetAsync将复杂对象传递给Razor Page。这适用于扁平物体。对于复杂的对象,我尝试传递调用普通控制器时的相同格式:
class Child {
public int Y { get; set; }
public int Z { get; set; }
}
class Parent {
public int X { get; set; }
public Child Me { get; set; }
}
我将查询字符串中的序列化对象(到控制器)传递为:
?X=value&Child[Y]=value&Child[Z]=value
调用ASPNET Core 2.0控制器时工作正常。但是,如果我将它传递给新的Razor页面,那么Parent参数对象就在那里,但Child成员将为null;模型状态也将无效。
是否可以通过查询字符串将复杂对象传递给Razor Page?
非常感谢。
答案 0 :(得分:1)
如果要获取子属性的值,则必须使用其他方法。例如,如果您有以下代码:
public class IndexModel : PageModel
{
public void OnGet(Parent parent)
{
}
}
然后您可以使用以下URL格式传递数据:
http://localhost:50050/?parent.Me.Y=4
我希望它有所帮助。