IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tadeáš Burda
Brigádník
Avatar
Tadeáš Burda :20.2.2020 17:11

Neviem detektovať že user na stránke klikol na odkaz a bol presmerovaný na iný web.

Zkusil jsem: Google, ale všetky riešenia sú v JS(aspoň ja som iné nenašiel). Nechcem použiť JS, pretože ho nepoznám a nechcem tam mať kód ktorý neviem čo robí, ani bych to nevedel prepojiť asi nijako z Controllerom.

Chci docílit: Vytváram si online RSS čítačku na moju stránku. Elementy z dokumentu zobrazujem v tabuľke + je tam vždy odkaz na článok, aby to užívateľa presmerovalo na daný web. Toto všetko v pohode dávam, ale neviem prísť nato ako detektovať že užívateľ klikol na daný odkaz a to potom spojiť z profilom a uložiť do databáze bez použitia JS. Existuje nijaké riešenie v .Netku bez použitia JS???

 
Odpovědět
20.2.2020 17:11
Avatar
Tadeáš Burda
Brigádník
Avatar
Tadeáš Burda :20.2.2020 17:14

Tu je kód, ak to pomôže:

@using ManagerRSS.Models.Classes
@model ItemRSS[]

<div class="table-responsive">
    <table class="table table-striped">
        <thead class="thead-dark">
            <tr>
                <th scope="col">#</th>
                <th scope="col">Title</th>
                <th scope="col">Link</th>
                <th scope="col">Description</th>
                <th scope="col">Public date</th>
            </tr>
        </thead>
        <tbody>
            @for (int i = 0; i < Model.Length; i++)
            {
                <tr>
                    <th scope="row">@i</th>
                    <td>@Model[i].Title</td>
                    <td><a href="@Model[i].Link" target="_blank">Go web</a></td>
                    <td>@Model[i].Description</td>
                    <td>@Model[i].PubDate</td>
                </tr>
            }
        </tbody>
    </table>
</div>
using System;
using System.Collections.Generic;
using System.Xml.Linq;

namespace ManagerRSS.Models.Classes
{
    public class DocRSS
    {
        /// <summary>
        /// Items of document.
        /// </summary>
        public ItemRSS[] Items { get; private set; }



        /// <summary>
        ///
        /// </summary>
        /// <param name="url">URL of the xml document.</param>
        public DocRSS(string url)
        {
            Items = ExtractItems(url);
        }



        /// <summary>
        /// Extracts elements from an xml document.
        /// </summary>
        /// <param name="url">URL of the xml document.</param>
        /// <returns></returns>
        private ItemRSS[] ExtractItems(string url)
        {
            List<ItemRSS> items = new List<ItemRSS>();
            XDocument xDocument = XDocument.Load(url);
            foreach (XElement element in xDocument.Element("rss").Element("channel").Elements("item"))
            {
                ItemRSS item = new ItemRSS()
                {
                    Title = element.Element("title").Value,
                    Link = element.Element("link").Value,
                    Description = element.Element("description").Value,
                    PubDate = DateTime.Parse(element.Element("pubDate").Value)
                };
                items.Add(item);
            }
            return items.ToArray();
        }
    }
}
using ManagerRSS.Models.Classes;
using Microsoft.AspNetCore.Mvc;

namespace ManagerRSS.Controllers
{
    /// <summary>
    /// Controller for read RSS xml document.
    /// </summary>
    public class ReaderRSSController : Controller
    {
        public IActionResult Index()
        {
            DocRSS doc = new DocRSS("https://example.com/rss");
            return View(doc.Items);
        }
    }
}
 
Nahoru Odpovědět
20.2.2020 17:14
Avatar
zelvicek
Člen
Avatar
zelvicek:21.2.2020 7:14

Blazor WASM.

 
Nahoru Odpovědět
21.2.2020 7:14
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na zelvicek
Tadeáš Burda :21.2.2020 15:46

Vyzerá to naozaj zaujímavo. Nevedel sem že niečo také existuje. Zbehnem dokumentáciu a poprípade to označím ako správnu odpoveď.

 
Nahoru Odpovědět
21.2.2020 15:46
Avatar
zelvicek
Člen
Avatar
zelvicek:23.2.2020 8:02

Až zjistíš, že použití Blazor není ta správná cesta (neb je to kanón na vrabce) a že vůbec nepotřebuješ detekovat kliknutí na link, předělej to na:

<td><a href="/clickHandler?url=@Model[i].Link" target="_blank">Go web</a></td>

Přičemž clickHandler povede na action, jejímž výsledkem bude redirect na ten "url". Takto to dělá Google.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
23.2.2020 8:02
Avatar
Tadeáš Burda
Brigádník
Avatar
 
Nahoru Odpovědět
24.2.2020 14:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.