Kiedyś już o tym pisałem pobieżnie (kilka lat temu), ale dzisiaj chciałbym pokazać inny przykład wraz ze wszystkimi możliwymi parametrami. Stwórzmy najpierw klasyczny formularz i kontroler: @using (Html.BeginForm()) { @Html.DropDownList("selectedGroup",new SelectList(new []{"All","GroupA","GroupB"})) <input type="submit" value="Refresh"> } Prosty formularz z ComboBox i przyciskiem, który powoduje ponowne załadowanie strony oraz wykonanie metody GetData z nowym parametrem:public ActionResul...
W poprzednim wpisie pokazałem Wam zalety narzędzia MvcSiteMapProvider. Zapowiedziałem też, że to nie koniec wpisów na ten temat… Jako, że nie rzucam słów na wiatr, dziś obiecana kontynuacja. A konkretnie, tak jak można wyczytać w tytule, zajmę się przedstawieniem jak za pomocą narzędzia MvcSiteMapProvider można trochę „zkustomizować” generowaną automatycznie listę służącą jako menu nawigacyjne. Naszym celem będzie, aby nadać tej liście odpowiednie klasy Bootstrap, tak aby wyglądało to jak należy. Zobaczy...
Każdy programista webowy wie doskonale czym jest sitemap’a i dlaczego ważne jest by ją mieć na stronach, które tworzymy. Jeśli jednak nie jesteś programistą tworzącym strony i aplikacje internetowe to śpieszę z wyjaśnieniem – sitemap’a to taki plik XML, znajdujący się zwykle w głównym katalogu aplikacji, który zawiera, jak sama nazwa wskazuje, mapę witryny czyli listę wszystkich podstron. Roboty wyszukiwarek internetowych wykorzystują tę listę do „zrozumienia” struktury witryny i dzięki temu szybciej mog...
Dzisiaj zapraszam na pierwszą w mojej karierze recenzję książki! Nigdy wcześniej tego nie robiłem jednak tę akurat książkę uważam za szczególnie wartościową i godną polecenia jeśli chodzi o literaturę związaną z językiem JavaScript. Mowa oczywiście o tytułowej pozycji, a więc „JavaScript Wzorce” (ang. JavaScript Patterns) Stoyana Stefanova. Znalazłem w końcu czas aby ją do końca przeczytać, dzięki czemu mam teraz materiał do przemyśleń na jej temat… I tymi przemyśleniami chciałbym się z Wami dzisiaj podz...
Jak do tej pory, mimo że raczej ciągnie mnie w stronę UI, nie miałem za wiele styczności z czymś takim jak Bootstrap czyli framework służący do tworzenia „responsywnych” i z pudełka dostosowanych do obsługi na urządzeniach mobilnych interfejsów użytkownika. Do tej pory miałem tylko trochę do czynienia z jednym z bardziej popularnych „preprocesorów” CSS czyli z Less’em. Jednak to tak naprawdę dwie różne sprawy. Less jest fajny, bo rozszerza CSS o kilka przydatnych „ficzerów” takich jak zmienne, funkcje it...
Filtry w ASP.NET MVC potrafią znaczącą polepszyć czytelność kodu, jeśli dana logika musi być wykonywana dla wielu akcji. Stanowią one tak naprawdę programowanie aspektowe, które jest całkowicie odmienne od powszechnie znanego programowania obiektowego. Ze względu na to, że programiści nie są przyzwyczajeni do tego modelu, należy uważać jak wykorzystuje się filtry. Klasyczne zastosowanie aspektów czy filtrów to caching, logging czy autoryzacja. Problemy te nalezą do grupy tzw. cross-cutting concerns, czy...
Hej. Bardzo lubię, kiedy życie zawodowe samo podsuwa mi pomysły na wpisu na tego bloga. Tak jest właśnie w tym przypadku – właśnie dziś musiałem sobie poradzić z opisywanym problemem czyli potrzebą zatwierdzania kilku części formularza kilkoma różnymi przyciskami submit. Starzy wyjadacze ASP.NET MVC pewnie doskonale wiedzą jak to zrobić, pewnie też znajdą się osoby, które powiedzą, że w ogóle tak nie powinno się robić, jednak ASP.NET MVC na to pozwala… Zresztą czasami spotykamy się z sytuacją niestandard...
Kilka wpisów wcześniej pisałem o atrybucie OutputCache. Dla prostych zastosowań sprawdza się dość dobrze, ale bardzo szybko można dostrzec jego ograniczenia i błędy. Przedstawmy najpierw kilka niedogodności związanych z OutputCache.
CSRF jest dzisiaj bardzo dobrze znanym atakiem, ale niestety wciąż wiele aplikacji internetowych pozostaje niezabezpieczonych. W poście nie będę opisywał szczegółowo CSRF ponieważ w Internecie jest już od dawna mnóstwo informacji o tym. Chciałbym jednak pokazać jak dzięki ASP.NET MVC możemy w łatwy sposób uchronić się przed atakiem. W MVC standardowy formularz tworzymy w następujący sposób:@using (Html.BeginForm("Manage", "Account")) { } Następnie mamy w kontrolerze akcję implementującą obsług...
Zastanawialiście się kiedyś jak zrobić układ strony podobny do tego, który zobaczyć możemy między innymi w serwisie Pinterest? Pewnie większość z Was zna ten serwis – jeśli nie to spieszę wyjaśnić, że jest to serwis społecznościowy, w którym użytkownicy dzielą się z innymi swoimi zdjęciami. Wyróżnia się on ciekawym układem, w jaki prezentowane są zdjęcia. Generalnie chodzi o to, że „layout” podzielony jest na kolumny o określonej szerokości, a ilość tych kolumn zależy od szerokości okna przeglądarki. W u...
Są momenty, w których jedyne co wypada zrobić do dać sobie samemu blachę z wykrzyknieniem: “kRRRRetynie!”. Tak miałem ostatnio, gdy po wdrożeniu kolejnej wersji systemu dostałem od klienta komunikat: “e ziom, nie działa!”. Po inwestygacji logów przyczyna okazała się dość prozaiczna: owszem, deploy poszedł, wszystko się udało, ale “użytkownik końcowy” nie zrobił (bo i skąd miał wiedzieć że trzeba to zrobić?) full-refresh, aby przeglądarka zaciągnęła now...
Mój mikro cykl o obsłudze ekranów dotykowych w JavaScript miał się zakończyć na poprzednim wpisie na ten temat, jednak szperając w google w poszukiwaniu materiałów do tych wpisów, natknąłem się na kilka JavaScriptowych bibliotek, które jak się okazuje pozwalają objeść problemy o których pisałem ostatnio. Postanowiłem więc, że fajnie będzie dopisać jeszcze jeden post na temat i opowiedzieć o jednej z takich właśnie bibliotek, a mianowicie Hand.js. Hand.js jest biblioteką, która powstała aby umożliwić pis...
Tworząc stronę internetową często potrzebujemy sprawdzić poszczególne składowe bez wracania do środowiska programistycznego. Narzędzia w przeglądarce Internet Explorer pozwalają analizować elementy widziane na stronie ze względu na budowę kodu HTML i CSS oraz sprawdzić logikę napisaną w języku JavaScript. Za...
Dzisiaj wracam do tematu obsługi ekranów dotykowych, o której pisałem w jednym z ostatnich wpisów. Wspomniałem wówczas, że w Internet Explorer wygląda to wszystko trochę inaczej… I na tym mam zamiar się w skupić w dzisiejszym poście. Na wstępie zaznaczę, że zdarzenia wskaźnika (ang. pointer events) pojawiły się wraz z wypuszczeniem przez Microsoft Internet Explorera 10 – w wydaniu tym, wprowadzono zupełnie odmienny od opisanego przeze mnie poprzednio, model obsługi zdarzeń zarówno myszki jak i dotyku. M...
Hej! Ten post miałem napisać już bardzo dawno… Ostatnio jednak wziąłem się trochę poważniej za tego bloga, postanowiłem więc ponadrabiać trochę wpisowych zaległości, a oto jedna z nich! Mianowicie, w trakcie pisania Read Your Feed – mojego super mega czytnika RSS;-) (możecie sobie o tej aplikacji przeczytać w dziale „Moje projekty”, który znajdziecie w menu po lewej stronie lub klikając tutaj) musiałem jakoś rozwiązać problem przewijania treści. Z założenia miała to być aplikacja typu „one page applicati...
Dzisiaj kolejny wpis o podstawach ASP.NET MVC. Tym razem chciałbym pokazać czym różnią się metody RenderBody, RenderSection, RenderPage oraz RenderPartial. Zacznijmy od najbardziej znanej metody, RenderBody. Korzystamy z niej w przypadku zdefiniowanego Layout’u. Tworząc nowy, domyślny projekt automatycznie zostanie dodany w folderze shared plik _Layout.cshtml. Definiuje on domyślny szablon czyli zwartość, która jest powtarzana na każdej podstronie. Zamiast duplikować cześć wspólną (menu, stopka itp.) na...
W dzisiejszym wpisie poruszę temat tworzenia kontrolerów asynchronicznych a właściwie asynchronicznych akcji kontrolera. W tworze tym wykorzystuje się programowanie wielowątkowe przy użyciu słów kluczowych „async” oraz „await” wprowadzonych we frameworku .NET 4.5. Może nam się to przydać w sytuacji przetwarzania żądania wykonującego wiele operacji wejścia/wyjścia, silnie obciążającego połączenie sieciowe lub procesor. Opisywanej asynchroniczności nie należy mylić z JavaScript’owymi żądaniami asynchronicz...
Dzisiejszy wpis jest pierwszym z dwóch, w których opiszę jak obsługiwać ekrany dotykowe w języku JavaScript. W pierwszym z nich zajmę się przypadkiem podstawowym czyli zdarzaniami standardowo dostępnymi w tym języku, a w drugim… jak się być może domyślacie, przypadkiem szczególnym, a mianowicie obsługą zdarzeń dotyku w Internet Explorer… No bo przecież IE nie może robić tego tak jak inne przeglądarki… Ech;)
Witajcie w Coding News – serii screencastów, w której omawiam najciekawsze wydarzenia i znaleziska minionego tygodnia.