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
beats.omni
Člen
Avatar
beats.omni:17.8.2015 14:30

Ahoj,

měl bych dotaz k editování html obsahu v ASP.NET MVC aplikaci. Řekněme, že si založím úplně nový MVC projekt. Hned na úvodní obrazovce je Jumbotron. Teď bych si k němu chtěl přidat Button, na který když kliknu, tak se mi ukáže např. tinyMCE editor s jehož pomocí budu moci změnit obsah Jumbotronu.

Je něco takového možné? Dá se takto přímo měnit obsah .cshtml souboru? Nebo je potřeba to řešit skrze databázi?

Jde mi o to, že když někomu udělám nějaké stránky nebo nějakou aplikaci za pomoci MVC, tak bych mu rád umožnil takto jednoduše měnit obsah určitých částí.

Díky za odpovědi a případě rady, jak se tato problematika dá řešit lépe.

Editováno 17.8.2015 14:31
 
Odpovědět
17.8.2015 14:30
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:17.8.2015 15:06

Tak nemusíš to nutně řešit před DB. Můžeš uživatelskou "invenci" uložit do souboru a jeho obsah pak načíst do výsledného HTML. Je to jednodušší a flexibilnější pro tento účel.

Měnit cshtml nebude nejlepší nápad a kdoví jestli to vůbec půjde. Počítal bych že právě v zpracování cshtml IISkem bude na tu chvilku zamčený. Ale to hádám.

 
Nahoru Odpovědět
17.8.2015 15:06
Avatar
beats.omni
Člen
Avatar
Odpovídá na Milan Křepelka
beats.omni:21.8.2015 18:35

Z textového souboru by to šlo. A jakým způsobem se to dá udělat, přes streamreader?

 
Nahoru Odpovědět
21.8.2015 18:35
Avatar
beats.omni
Člen
Avatar
beats.omni:21.8.2015 19:07

Zkoušel jsem to načíst za pomoci

@File.ReadAllText

. Ale to mi načte i tagy.

 
Nahoru Odpovědět
21.8.2015 19:07
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na beats.omni
Milan Křepelka:22.8.2015 8:47

A kde je problém?

 
Nahoru Odpovědět
22.8.2015 8:47
Avatar
rrepin15
Člen
Avatar
Odpovídá na beats.omni
rrepin15:22.8.2015 8:56

No jestli chceš načíst soubor pomocí streamreadru tak to je takto

using (StreamReader sr = new StreamReader("soubor.txt"))
            {
                 //zde bude kam chceš vypsat obsah souboru. Např.
TextBox1.Text =sr.ReadAllText;

            }

Doufám, že jsem to napsal dobře.

 
Nahoru Odpovědět
22.8.2015 8:56
Avatar
beats.omni
Člen
Avatar
Odpovídá na Milan Křepelka
beats.omni:23.8.2015 11:54

Problém byl, že se mě na stránce zobrazoval celý obsah toho načítaného souboru včetně html tagů a neformátovalo se to. Vyřešil jsem to takto v controlleru

[ChildActionOnly]
        public ActionResult GetHtmlPage(string path)
        {
            return new FilePathResult(path, "text/html");
        }

A následně ve View

<div class="jumbotron">
    @Html.Action("GetHtmlPage", "Home", new { path = "~/Content/EditableContent/EditableContent_01.html" })
</div>

Teď jsem si do projektu přidal i TinyMce pro editaci, ale nevím, jak jeho obsah uložit do toho souboru EditableConten­t01.html.

 
Nahoru Odpovědět
23.8.2015 11:54
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na beats.omni
Mediel:28.8.2015 2:38

Řešil bych to přes databázi, krom toho těch uživatelů bude více a každý asi bude chtít mít jiný obsah té stránky, ne? Pakliže se to bude řešit přes databázi stačí zavolat @Html.Raw(Model­.Obsah), který zajistí vložení obsahu jako HTML. Avšak je důležité pomyslet, že pokud k tomu budou mt přístup nějaký nerozumní lidé, tak ti těmito vlastními obsahy mohou napáchat nemalé škody, ale vzhledem k tomu, že se editace pravděpodobně bude odehrávat za loginem, tak se to dá celkem snadno dohledat a eliminovat. Avšak opatrnosti není nikdy dost.

Nahoru Odpovědět
28.8.2015 2:38
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Mediel
Milan Křepelka:28.8.2015 12:19

Takové obavy bývají přehnané. Naopak. Pokud jde o editaci obsahu stránek, ne provozních dat, tak tu má ve správě minimum lidí a obsah se mění pomálu a nekonkurenčně.

Pokud ty weby nemají přístup k DB vůbec, je to zbytečná práce navíc. Pokud mají, tak ale ta pracnost navíc už ale není zase tak velká.

 
Nahoru Odpovědět
28.8.2015 12:19
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na Milan Křepelka
Mediel:1.9.2015 13:08

No sám jste si odpověděl, pracnost není zas tak velká, tak proč to rovnou neudělat pořádně s přípravou na budoucí rozšiřování :) Ale tohle si už musí autor vlákna rozhodnout sám

Nahoru Odpovědět
1.9.2015 13:08
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
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 10 zpráv z 10.