【问题标题】:pass parameter in mvc4 partial view在 mvc4 局部视图中传递参数
【发布时间】:2012-12-04 17:43:37
【问题描述】:

我用谷歌代码创建了一个局部视图,我想向该视图发送两个参数。 以下是部分视图的内容:

    <!-- Google Code for apply Conversion Page --> <script type="text/javascript">
   /* <![CDATA[ */
   var google_conversion_id = 1234567;
   var google_conversion_language = "en";
   var google_conversion_format = "2";
   var google_conversion_color = "ffffff";
   var google_conversion_label = "7df7df7sdfdf"; 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/1234567/?value=0&amp;label=7df7df7sdfdf&amp;guid=ON&amp;script=0"/>
   </div>
   </noscript>

现在我想使用两个参数,而不是 google_conversion_id 和 google_conversion_label 的静态值,这两个参数将从主表单发送。

我是这样称呼局部视图的:

@{ Html.RenderPartial("Google"); }

知道如何实现吗? 谢谢,Laziale

【问题讨论】:

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


    【解决方案1】:

    您可以使用 RenderAction 代替 RenderPartial。然后你可以在控制器中编写你自己的动作,你可以添加参数。像这样的:

    @{ Html.RenderAction("Action", "Controller", new { id = "Something", label = "Label" }); }
    

    或者你在后面的代码中为局部视图创建一个新模型。

    另一种选择是将参数存储在 ViewBag 中,但这更像是一种 hack。

    【讨论】:

    • 我还需要包含控制器吗?这是强制性的吗?因为此刻我只有片面的看法。谢谢@slfan
    • 如果你使用 RenderAction 你需要一个控制器。但是您可能会重用现有的控制器并为您的局部视图编写一个新操作。如果不需要控制器,仍然可以将参数存储在 ViewBag 中。顺便说一句:如果你使用 RenderPartial,你可以不用大括号。只是@Html.RenderPartial
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 2013-02-03
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多