У меня есть простая, но, вероятно, общая проблема с тем, как вводить HTML-код на главной странице ASP.NET MVC. У меня есть код отслеживания Google Analytics, который находится на моей главной странице. Код выглядит следующим образом:Как вставить HTML-код на главную страницу ASP.NET MVC
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 является постоянным для всего сайта, но код электронной коммерции на странице или что-то еще? –
Вы можете написать фильтр, чтобы установить код GA в ViewData и поместить его в действие Receipt. (Я думаю, что это один из редких сценариев, когда уместно использовать ViewData.) Однако действительно, нет ничего плохого в том, чтобы оставить его внутри действия. – Ryan
Да, электронная торговля предназначена только для страницы получения. – Keltex