【发布时间】:2014-12-01 23:54:07
【问题描述】:
关于如何在 ASP.NET MVC 母版页中注入 HTML,我有一个简单但可能很常见的问题。我的母版页上有一个谷歌分析跟踪代码。代码如下所示:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
// need to inject ecommerce code here
(function () {
// google analytics code here
})();
我正在使用电子商务跟踪,我想在收据页面上的这个 HTML 中注入“购物车”信息(并且只在这个页面上)。所以我做了这样的事情:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
<% if(ViewData["googleanalytics"]!=null) {%>
<%= ViewData["googleanalytics"] %>
<% } %>
(function () {
// google analytics code here
})();
然后在控制器中,我的代码如下所示:
[HttpGet]
public ActionResult Receipt()
{
var receipt = // get receipt model
// get google analytics javascript. This function pulls
// the data from the receipt model
ViewData["googleanalytics"] = GetAnalyticsInfo(receipt);
return View(receipt);
}
这整个事情看起来有点杂乱无章,我想知道是否有人有更好的想法来处理这种情况?
【问题讨论】:
-
您到底想做什么?哪一部分最让你烦恼?据我了解,您的问题是整个网站的 Google Analytics(分析)代码是不变的,但电子商务代码是每页还是其他?
-
您可以编写一个过滤器来设置 ViewData 中的 GA 代码并将其放在 Receipt 操作中。 (我认为这是适合使用 ViewData 的罕见场景之一。)不过,将其留在操作中确实没有任何问题。
-
是的,电子商务只针对收据页面。
标签: asp.net asp.net-mvc master-pages google-analytics