【问题标题】:get viewdatadictionary value in partial view在部分视图中获取 viewdatadictionary 值
【发布时间】:2012-11-22 11:25:26
【问题描述】:

我有一个局部视图,我试图从父视图中获取值。 这就是我正在尝试的:

 @Html.Partial("Shared", "Home", new ViewDataDictionary { { "9595959", "8sd8sds8das8d" } }) 

这是部分视图:

      <!-- Google Code for apply Conversion Page --> <script type="text/javascript">
   /* <![CDATA[ */
   var google_conversion_id = "viewdata-number1";
   var google_conversion_language = "en";
   var google_conversion_format = "2";
   var google_conversion_color = "ffffff";
   var google_conversion_label = "viewdata-number2"; var google_conversion_value = 0;
   /* ]]> */
   </script>
   <script type="text/javascript"  
   src="https://www.googleadservices.com/pagead/conversion.js">
   </script>
   <noscript>
   <div style="display:inline;">
   <img height="1" width="1" style="border-style:none;" alt=""  
   src="https://www.googleadservices.com/pagead/conversion/viewdata-number1/?value=0&amp;label=viewdata-number2&amp;guid=ON&amp;script=0"/>
   </div>
   </noscript> 

是否可以立即获得价值?我没有为局部视图分配任何模型或控制器。 提前谢谢,Laziale

更新代码:

@{
    var variable = ViewData["First"];
        <!-- Google Code for apply Conversion Page --> <script type="text/javascript">
   /* <![CDATA[ */
   var google_conversion_id = variable;
   var google_conversion_language = "en";
   var google_conversion_format = "2";
   var google_conversion_color = "ffffff";
   var google_conversion_label = "f6vICKTT6gMQzNOf3gM"; var google_conversion_value = 0;
   /* ]]> */
   </script>
   <script type="text/javascript"  
   src="https://www.googleadservices.com/pagead/conversion.js">
   </script>
   <noscript>
   <div style="display:inline;">
   <img height="1" width="1" style="border-style:none;" alt=""  
   src="https://www.googleadservices.com/pagead/conversion/1002957260/?value=0&amp;label=f6vICKTT6gMQzNOf3gM&amp;guid=ON&amp;script=0"/>
   </div>
   </noscript> 
}

你认为这会奏效吗?

【问题讨论】:

    标签: asp.net-mvc-3 razor asp.net-mvc-4 partial-views


    【解决方案1】:

    对不起,我不太明白你的问题。您可以像这样获取部分 ViewData 值:

    var a = (int)ViewData["9595959"]; // variable a will get value "8sd8sds8das8d"
    

    您还可以像这样创建新的 ViewDataDictionary 扩展当前视图 ViewDataDictionary:

     @Html.Partial("Shared", "Home", new ViewDataDictionary(ViewData) { { "9595959", "8sd8sds8das8d" } }) 
    

    它会像这样工作:

     @{
         var variable = (int)ViewData["First"];
     }
        <!-- Google Code for apply Conversion Page --> <script type="text/javascript">
     /* <![CDATA[ */
     var google_conversion_id = @variable;
     var google_conversion_language = "en";
     var google_conversion_format = "2";
     var google_conversion_color = "ffffff";
     var google_conversion_label = "f6vICKTT6gMQzNOf3gM"; var google_conversion_value = 0;
     /* ]]> */
     </script>
     <script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js">
     </script>
     <noscript>
     <div style="display:inline;">
     <img height="1" width="1" style="border-style:none;" alt=""  
     src="https://www.googleadservices.com/pagead/conversion/1002957260/?value=0&amp;label=f6vICKTT6gMQzNOf3gM&amp;guid=ON&amp;script=0"/>
     </div>
     </noscript> 
    

    【讨论】:

    • 有没有办法获得例如 ViewData[0] ?因为每次我调用局部视图时这两个值可能都不同..
    • ViewData.Values.FirstOrDefault() 这将获得第一个值
    • 但是从 ViewData 中获取第一个值并不是很好的解决方案
    • @Html.Partial("Shared", "Home", new ViewDataDictionary(ViewData) { { "MyVariable", "8sd8sds8das8d" } }) 并将不同的值传递给 MyVariable,然后你会得到它在这样的视图中:ViewData["MyVariable"]
    • 就我而言,我想发送两个值 9595959 和 8sd8sds8das8d。
    【解决方案2】:

    link

    这是某人做我认为你想做的事情的例子。

    此外,在您的部分中,只需执行 ViewData["9595959"] 即可挂钩该特定数据。

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多