【问题标题】:Read object values in Razor在 Razor 中读取对象值
【发布时间】:2018-04-13 04:52:37
【问题描述】:

我有一个包含类似字符串的 ViewData。

{ Param1 = "1", Param2 = "2", Param3 = "3" }

我将它设置为一个对象 razor 变量,但我无法读取像 @myVar.Param1 这样的值。

@{
    object myParameters = ViewData["parameters"];
}

我知道如何在 JS 中做到这一点,但在 Razor 中不知道。最好的方法是什么?

问候

【问题讨论】:

  • 当您说“包含字符串”时,您的意思是您正在这样设置视图数据? ViewData["parameters"] = "{ Param1 = \"1\", Param2 = \"2\", Param3 = \"3\" }";
  • @AaronLS ViewData 是这样设置的(我无权更改)new { parameters = new { Param1 = "1", Param2 = "2", Param3 = "3" } }。从视图中阅读,就像您在没有横杠的情况下输入的一样。

标签: json asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

由于您使用的是在其他地方(在控制器中)定义的匿名类型的对象,因此您不能对属性进行强类型访问。但是你应该可以使用 Eval:

ViewData.Eval("parameters.Param1")

虽然我鼓励你考虑为这个模型定义一个类。

【讨论】:

    【解决方案2】:

    myParameters 应该是动态的:

    dynamic myParameters = ViewData["parameters"];

    【讨论】:

    • 我尝试了这种方法,但与将变量设置为对象相比没有任何改变。
    猜你喜欢
    • 1970-01-01
    • 2021-06-09
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多