【问题标题】:Syntax ViewData in ASP.NET MVCASP.NET MVC 中的语法 ViewData
【发布时间】:2010-08-08 12:23:49
【问题描述】:

谁能给我解释一下下面的语法是什么意思?

ViewData ["greeting"] = (hour

【问题讨论】:

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


    【解决方案1】:

    小时

    如果hour 的值小于 12,则此 ternary operator 调用(等效于 if then else 结构)将提供字符串 Godd morning,否则下午好。

    该结果被放入 ViewData["greeting"] 中,稍后可以在您的视图中使用它来显示消息。

    【讨论】:

      【解决方案2】:

      你是说右边的接线员?这是Conditional Operator,就像:

      condition ? if_true : if_false
      

      所以在这里如果hour 小于12,那么ViewData ["greeting"] 将有字符串Godd morning assinged。否则将分配Good afternoon

      您可以阅读有关此运算符的更多信息here

      希望这会有所帮助:)

      【讨论】:

        【解决方案3】:

        这一行将数据从控制器传递到视图模板。视图模板可以使用 ViewData["greeting"] 的内容进行处理。例如:

        <p>
           <%: ViewData["greeting"] %>, earthling!
        </p>
        

        如果变量 hour 的值小于 12,则消息将是“Godd Morning,earthling”,否则将是“Good下午,earthling!”。

        基本上布尔表达式hour &lt; 12 将被计算。如果是true,则?: 之间的表达式将分配给ViewData["greeting"]。如果为 false,则将 : 之后的表达式分配到左侧。

        你可以替换

        ViewData ["greeting"] = (hour <12 ? "Godd morning" : "Good afternoon");
        

        使用此等效代码:

        if( hour < 12 )
           ViewData["greeting"] = "Godd morning";
        else
           ViewData["greeting"] = "Good afternoon";
        

        【讨论】:

        • 我认为他问的是语法。与 ViewData 机制无关;)
        • @Lukas:谢谢。我认为可能两者兼而有之,所以我更新了我的答案。
        【解决方案4】:

        与以下内容相同:

        if (hour < 12)
           ViewData ["greeting"] = "Good morning";
        else
           ViewData ["greeting"] = "Good afternoon";
        

        只是一个三元运算符来简化这个通用结构。

        正如 ŁukaszW.pl 所说,只是:

        yourCondition ? isTrue : isFalse;
        

        ViewData 只是控制器传递给视图的字典。

        视图应该显示数据,然后,您在控制器上创建“问候”字符串并将其传递给视图以显示该信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-02
          • 2011-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多