【问题标题】:Issue with Late binding in asp.net mvc [duplicate]asp.net mvc中的后期绑定问题[重复]
【发布时间】:2013-02-11 15:23:59
【问题描述】:

我正在做类似的事情:

return View("XXXXXX", new
        {
            Message = "ok"
        });

但是,当尝试通过 Model.Message 读取变量时,会引发异常:

“对象”不包含“消息”的定义

即使在调试器中悬停在Model 上显示Message = "ok"

知道为什么会发生这种情况吗?

【问题讨论】:

  • 你能显示查看代码吗?
  • 您的问题可能是因为您正在发送一个匿名类型,该类型正在被翻译成一个对象。
  • 您必须将动态指定为模型类型;但是,我遇到了问题,于是求助于使用强类型模型。
  • @IronMan84 和 AliRıza Adıyahşi 是的,我是这么想的……所以答案是“不要使用匿名类型作为模型”?我觉得这很奇怪,特别是因为调试器可以看到变量及其值

标签: c# asp.net .net asp.net-mvc asp.net-mvc-3


【解决方案1】:

正如 cmets 中提到的,您遇到的问题是您尝试使用匿名类型传递到视图。这意味着它会显示在您的调试器中,但您的页面会崩溃,因为它会将其解释为 object 而不是您尝试的类型。

最好的解决方案是创建一个包含 Message 属性的新 Model 类,并将您的 View 强输入到该 Model。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多