通过查询字符串将复杂对象模型绑定到新的 ASPNET Core Razor 页面
Model binding complex object via query string to new ASPNET Core Razor Page
我们正在谈论 ASPNET Core 2.0 中的新 Razor 页面。
我想通过 OnGetAsync 将复杂对象传递给 Razor 页面。这适用于平面物体。对于复杂对象,我尝试传递与调用普通控制器时相同的格式:
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 成员将为空;模型状态也将无效。
有什么方法可以通过查询字符串将复杂对象传递到 Razor 页面?
非常感谢。
如果你想获取子属性的值,你将不得不使用另一种方法。例如,如果您有以下代码:
public class IndexModel : PageModel
{
public void OnGet(Parent parent)
{
}
}
然后您可以使用以下URL格式传递数据:
http://localhost:50050/?parent.Me.Y=4
希望对您有所帮助。
我们正在谈论 ASPNET Core 2.0 中的新 Razor 页面。
我想通过 OnGetAsync 将复杂对象传递给 Razor 页面。这适用于平面物体。对于复杂对象,我尝试传递与调用普通控制器时相同的格式:
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 成员将为空;模型状态也将无效。
有什么方法可以通过查询字符串将复杂对象传递到 Razor 页面?
非常感谢。
如果你想获取子属性的值,你将不得不使用另一种方法。例如,如果您有以下代码:
public class IndexModel : PageModel
{
public void OnGet(Parent parent)
{
}
}
然后您可以使用以下URL格式传递数据:
http://localhost:50050/?parent.Me.Y=4
希望对您有所帮助。