【发布时间】:2015-12-17 03:21:10
【问题描述】:
我正在用 C# 编写 MVC asp.net 编程项目。
我的arena 类有 5 个属性:
public int Id { get; set; }
public int CharacterId { get; set; }
public int Forfeit { get; set; }
public System.DateTime Queued { get; set; }
public virtual Character Character { get; set; }
当我使用这个从数据库中获得Arena 的模型时:
var arenaModel = ctx.Arenas.FirstOrDefault(a => a.Character.AccountId == currentUserId);
没有什么是空的,有一个字符,有id,没收并排队。 但是当我使用这个重定向到另一个动作时:
return RedirectToAction("BattleNPC", arenaModel);
并在 BattleNPC 方法中使用断点
public ActionResult BattleNPC(Arena model)
{
var character = model.Character; // <-- Null
}
突然Character 的属性为空,我仍然可以看到其他属性,但Character 变为空。
这是为什么呢?有人可以解释为什么Character 变为空。
我知道如何解决它,我只是不明白为什么它会变为空。
【问题讨论】:
-
Character是null因为在内部RedirectToAction()方法会根据模型中每个属性的.ToString()值生成查询字符串值。对于你的最后一个属性,这将返回&Character="yourAssembly.Character"不能绑定到 tyeofCharacter
标签: c# asp.net-mvc