2014-09-30 4 views
0

Я новичок в MVC, поэтому извиняюсь, если это может быть плохо невежественно. В моем приложении MVC я пытаюсь отслеживать каждый раз, когда страница нажата или доступна. Моя стратегия заключается в том, чтобы регистрировать его в базе данных всякий раз, когда щелчок происходит в домашнем представлении для конкретной страницы, передавая параметр функции javascript, которая, в свою очередь, вызывает веб-метод, который взаимодействует с файлом cs.Как передать параметры из списка в javascript

Моей главной проблемой на данный момент является то, что я не могу передать данные с щелчка на главной странице на функцию javascript, по какой-то очень странной причине, она отказывается связываться с функцией. Я попытался использовать два метода: onClick и привязку данных (обе стратегии представлены в коде ниже), и он не работает. Любой совет?

<tr class="row"> 
    <td> 
     <div class="tabbable"> 
      <ul class="nav nav-tabs nav-stacked" id="menuTabs"> 
       <li class="active"><a href="#land" data-toggle="tab" onclick="PostName('Home')">Home</a></li> 
       <li class=""><a href="#tutuwaroadshow" data-toggle="tab" data-bind="click: function (o, e){$root.PostName(o,e);}" >Tutuwa roadshows</a></li> 
       <li class=""><a href="#faqsandpresentations" data-toggle="tab" onclick="PostName('Faqs')">FAQ's and presentations</a></li> 
       <li class=""><a href="#examplescenarios" data-toggle="tab" onclick="PostName('ExampleScenarios')">Example scenarios</a></li> 
       <li class=""><a href="#financialadvisors" data-toggle="tab" onclick="PostName('FinancialAdvisors')">Financial advisors</a></li> 
       <!--<li class=""><a href="#privateclients" data-toggle="tab">Private Clients</a></li>--> 
       <li class=""><a href="#trustdeeds" data-toggle="tab" onclick="PostName('TrustDeeds')">Trust deeds</a></li> 
       <li class=""><a href="#newsflashes" data-toggle="tab" onclick="PostName('Newsflashes')">Newsflashes</a></li> 
       <li class=""><a href="#usefullinksandcontacts" data-toggle="tab" onclick="PostName('Useful')">Useful links and contacts</a></li> 
       <li class=""><a href="#webinar" data-toggle="tab" onclick="PostName('Webinar')">Webinar</a></li> 
      </ul> 
     </div> 
     <div class="newsflash"><a href="~/Content/files/Tutuwa%20Newsflash%204.pdf" target="_blank">Click here for the latest newsflash.</a></div> 
    </td> 
    <td rowspan="2"> 
     <div class="tab-content"> 
      <div class="tab-pane active" id="land">@Html.Partial("Land")</div> 
      <div class="tab-pane" id="tutuwaroadshow">@Html.Partial("TutuwaRoadshow")</div> 
      <div class="tab-pane" id="faqsandpresentations">@Html.Partial("FaqsAndPresentations")</div> 
      <div class="tab-pane" id="examplescenarios">@Html.Partial("ExampleScenarios")</div> 
      <div class="tab-pane" id="financialadvisors">@Html.Partial("FinancialAdvisors") </div> 
      <div class="tab-pane" id="privateclients">@Html.Partial("PrivateClients")</div> 
      <div class="tab-pane" id="trustdeeds">@Html.Partial("TrustDeeds")</div> 
      <div class="tab-pane" id="newsflashes">@Html.Partial("NewsFlashes")</div> 
      <div class="tab-pane" id="usefullinksandcontacts">@Html.Partial("UsefulLinksAndContacts")</div> 
      <div class="tab-pane" id="webinar">@Html.Partial("Webinar")</div> 
     </div>    

    </td> 

И JavaScript:

<script type="text/javascript"> 

function PostName(pageName) { 
      debugger;  

$.ajax({ 
       type: "POST", 
       url: 'HomeController/SaveVisitorHits', 
       data: { s: pageName }, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        //do nothing 
       }, 
       error: function (e) { 
        // do nothing 
       } 
      }); 
     } 
</script> 

ответ

1

Вы должны определить функцию, прежде чем использовать его в HTML, и вам нужно написать onclick="javascript:PostName('name')".

Лучшим способом, однако, было бы установить имя в атрибуте данных и прикрепить обработчик кликов с помощью jQuery, поскольку вы уже используете это для вызова AJAX.

+0

Спасибо .. Я положил в "javascript: PostName ('name')". и его все еще то же самое, он не достигает js. Должен ли я иметь Javascript в отдельном файле? и, пожалуйста, объясните, что вы подразумеваете, определяя функцию до того, как я ее использую в HTML? – LeloKunene

+0

, если вы переместите определение функции в голову, например, оно должно работать. см. http://jsfiddle.net/cLp6y51c/ – Tetaxa

Смежные вопросы