Сохранение кликов пользователя с помощью .netcore - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в .netcore. У меня есть рабочее приложение, над которым я работаю. Я хочу отследить клик пользователя и сохранить в базе данных. Например, если пользователь что-то ищет и нажимает на результат поиска, скажем, 2-й результат, я хочу сохранить этот результат в базе данных и поставить его как 1 для будущих предложений. Я пытался найти это в интернете, но до сих пор не помог.

1 Ответ

0 голосов
/ 04 ноября 2019

Например, вот так, я написал этот бланк, но он должен делать то, что вы хотите (из логики), если вы реализуете это так. Ect реализации базы данных, на вашей стороне, так как я не знаю ваших моделей.

Javascript:

$('li[data-result]').click(function(){
  var result = $(this).data('result');
  var keyword = $(this).data('keyword');
  console.log(`/click/searchrecording?result=${result}&keyword=${keyword}`);
  /*
  $.ajax({
    url: `/click/searchrecording?result=${result}&keyword=${keyword}`,
    method: 'GET',
    succsess: function(){
      console.log('recorded Click');
    }
  });
  */
})

Html / Razor

<ul>
@foreach(var result in @Model.Results)
{
  <li data-result="@result.Id" data-keyword="@Model.Keyword">@result.Text</li>
}
<ul>

Для записи кликов:

public class ClickController
{
    public async Task<IActionResult> SearchRecording([FromQuery] string result [FromQuery] string keyword)
    {
       /* Record to Database Async */
       return Ok();
    }
}

чтобы выполнить поиск:

public class SearchController
{
    public async Task<IActionResult> Search([FromQuery] string keyword)
    {
       var results = await SearchInDatabase(keyword);
       var model = new SearchResultViewModel();
       model.Keyword=keyword;
       model.Results = results.OrderByDescending(x => x.Rank)
       return View(model);
    }
}
...