STEM STUDY

Nghiên cứu & phát triển (R&D) về các lĩnh vực IoT, Robotics, Trí tuệ nhân tạo (AI), 3D Printing, ứng dụng website và các ứng dụng di động. Website: http://www.itr.com.vn

22. March 2020 13:57
by ĐÀO TƯỜNG SƠ
8 Comments

Asp.net MVC 0011 - Code First with CRUD Bootstrap Modal

22. March 2020 13:57 by ĐÀO TƯỜNG SƠ | 8 Comments

Bước 1: Tạo Model với tên Book

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVCTest07.Models
{
    public class Book
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Author { get; set; }
        public decimal Price { get; set; }
        public DateTime Published { get; set; }
    }
}

Bước 2: Cài đặt Entity Framework

- Vào Tool/NuGet Pakage Manager/Manage NuGet Package for Solution... và cài đặt Entity Framework.

Bước 3: Tạo thư mục Context và lớp BookContext

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace MVCTest07.Context
{
    public class BookContext:DbContext
    {
        public DbSet<Book> Books { get; set; }
    }
}

Bước 4: Tạo chuỗi kết nối trong web.config

<connectionStrings>
    <add name="BookContext" connectionString="Data Source=DAOTUONGSO\SQLEXPRESS; Initial Catalog=LibraryDB2155;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

Bước 5: Tạo Controller với lựa chọn Entity Framework

Bước 6: Hiệu chỉnh view Index

@model IEnumerable<MVCTest07.Models.Book>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<table>
    <tr>
        <td><a href='@Url.Action("Create","Books")' class="pull-right btn mauxanh btn-create"><i class="glyphicon glyphicon-plus"></i> New</a></td>
    </tr>
</table>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Author)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Published)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Author)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Price)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Published)
            </td>
            <td>
                <a href='@Url.Action("Edit", "Books", routeValues: new { id=item.Id})' class="btn btn-xs mauvang btn-edit"><i class="glyphicon glyphicon-pencil"></i></a> <a href='@Url.Action("Delete", "Books", routeValues: new { id=item.Id})' class="btn btn-xs maudo btn-delete"><i class="glyphicon glyphicon-trash"></i></a> </td> </tr> } </table> <!-- Modal Create--> <div class="modal fade" id="myModalcreate" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <!-- modal content --> ... </div> </div> <script> $(document).ready(function () { $('.btn-create').click(function (e) { e.preventDefault(); var $modal = $('#myModalcreate'); var $modalDialog = $('.modal-dialog'); var href = $(this).prop('href'); // không cho phép tắt modal khi click bên ngoài modal var option = { backdrop: 'static' }; // load modal $modalDialog.load(href, function () { $modal.modal(option, 'show'); }); }); }); </script> <!-- Modal Edit--> <div class="modal fade" id="myModaledit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <!-- modal content --> ... </div> </div> <script> $(document).ready(function () { $('.btn-edit').click(function (e) { e.preventDefault(); var $modal = $('#myModaledit'); var $modalDialog = $('.modal-dialog'); var href = $(this).prop('href'); // không cho phép tắt modal khi click bên ngoài modal var option = { backdrop: 'static' }; // load modal $modalDialog.load(href, function () { $modal.modal(option, 'show'); }); }); }); </script> <!-- Modal Delete--> <div class="modal fade" id="myModaldelete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <!-- modal content --> ... </div> </div> <script> $(document).ready(function () { $('.btn-delete').click(function (e) { e.preventDefault(); var $modal = $('#myModaldelete'); var $modalDialog = $('.modal-dialog'); var href = $(this).prop('href'); // không cho phép tắt modal khi click bên ngoài modal var option = { backdrop: 'static' }; // load modal $modalDialog.load(href, function () { $modal.modal(option, 'show'); }); }); }); </script>

Bước 7: Hiệu chỉnh Controller

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using MVCCodeFirst.Context;
using MVCCodeFirst.Models;

namespace MVCCodeFirst.Controllers
{
    public class BooksController : Controller
    {
        private BookContext db = new BookContext();

        // GET: Books
        public ActionResult Index()
        {
            return View(db.Books.ToList());
        }

        // GET: Books/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Book book = db.Books.Find(id);
            if (book == null)
            {
                return HttpNotFound();
            }
            return View(book);
        }

        // GET: Books/Create
        public ActionResult Create()
        {
            return PartialView();
        }

        // POST: Books/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "Id,Name,Author,Price,Published")] Book book)
        {
            if (ModelState.IsValid)
            {
                db.Books.Add(book);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(book);
        }

        // GET: Books/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Book book = db.Books.Find(id);
            if (book == null)
            {
                return HttpNotFound();
            }
            return PartialView(book);
        }

        // POST: Books/Edit/5
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "Id,Name,Author,Price,Published")] Book book)
        {
            if (ModelState.IsValid)
            {
                db.Entry(book).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(book);
        }

        // GET: Books/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Book book = db.Books.Find(id);
            if (book == null)
            {
                return HttpNotFound();
            }
            return PartialView(book);
        }

        // POST: Books/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            Book book = db.Books.Find(id);
            db.Books.Remove(book);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

Bước 8: Hiệu chỉnh view Create, Edite và Delete

//Hiệu chỉnh view Create

@model MVCCodeFirst.Models.Book

@{
    ViewBag.Title = "Create";
}

@using (Html.BeginForm("Create", "Books", FormMethod.Post, htmlAttributes: new { @class = "form-create" }))
{
    @Html.AntiForgeryToken()

    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h4 class="modal-title" id="myModalLabel">Add Item</h4>
        </div>

        <div class="modal-body">
            <div class="form-horizontal">
                <h4>Book</h4>
                <hr />
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                <div class="form-group">
                    @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Author, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Author, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Author, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Price, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Price, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Price, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Published, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Published, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Published, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Create" class="btn btn-default" />
                    </div>
                </div>
            </div>
        </div>

        <div class="modal-footer">
            <button type="submit" class="btn mauxanh"><i class="glyphicon glyphicon-floppy-save"></i> Add</button>
            <button type="button" class="btn mauxam" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i> Close</button>
        </div>
    </div>
}

//Hiệu chỉnh view Edit

@model MVCCodeFirst.Models.Book

@{
    ViewBag.Title = "Edit";
}

@using (Html.BeginForm("Edit", "Books", FormMethod.Post, htmlAttributes: new { @class = "form-edit" }))
{
    @Html.AntiForgeryToken()

    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h4 class="modal-title" id="myModalLabel">Edit Item</h4>
        </div>

        <div class="modal-body">
            <div class="form-horizontal">
                <h4>Book</h4>
                <hr />
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                @Html.HiddenFor(model => model.Id)

                <div class="form-group">
                    @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Author, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Author, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Author, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Price, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Price, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Price, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Published, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Published, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.Published, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Save" class="btn btn-default" />
                    </div>
                </div>
            </div>
        </div>

        <div class="modal-footer">
            <button type="submit" class="btn mauxanh"><i class="glyphicon glyphicon-floppy-save"></i> Update</button>
            <button type="button" class="btn mauxam" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i> Close</button>
        </div>
    </div>
}


//Hiệu chỉnh view Delete

@model MVCCodeFirst.Models.Book

@{
    ViewBag.Title = "Delete";
}
@using (Html.BeginForm("Delete", "Books", FormMethod.Post, htmlAttributes: new { @class = "form-create" }))
{
    @Html.AntiForgeryToken()

    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h4 class="modal-title" id="myModalLabel">Delete Item</h4>
        </div>

        <div class="modal-body">
            <h3>Are you sure you want to delete this?</h3>
        </div>

        <div class="modal-footer">
            <button type="submit" class="btn mauxanh"><i class="glyphicon glyphicon-floppy-save"></i> Delete</button>
            <button type="button" class="btn mauxam" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i> Close</button>
        </div>
    </div>
}


 

Comments (8) -

Acabei de conhecer seu weblog e quero ler muito texto. Você trabalha bastante bem na rede e sabe bem como colocar a palavra no lugar correto.

Aw, this was a very good post. Finding the time and actual effort to create a good article… but what can I say… I hesitate a whole lot and don't seem to get anything done.

@jefferson: May be your version bootstrap is 4.x or up. This article using bootstrap 3.xx

fantastic put up, very informative. I ponder why the opposite experts of this sector don't understand this. You must continue your writing. I am confident, you've a great readers' base already!  Feel free to surf to my homepage -  Essay Writing service - www.Johnsonclassifieds.com/user/profile/3783009

What's up to all, since I am genuinely keen of reading this webpage's post to be updated regularly. It includes good stuff.  Here is my site ::  Danuta - wwme-tv.com/.../netsoltrademark.php

Hey, I think your site might be having browser compatibility issues. When I look at your blog in Chrome, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!

I was wondering if you ever considered changing the layout of your blog? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or 2 pictures. Maybe you could space it out better?  My site  write My essay - www.nutritionqualityindex.net/.../...trademark.php

What's up friends, how is the whole thing, and what you wish for to say on the topic of this post, in my view its truly awesome in favor of me.  my web-site ...  Essay Writing Service - Stroneks.ru/.../redirect.php://Writemyessaytoday.org/write-my-term-paper

Hey there,  You have done a fantastic job. I'll definitely digg it and personally suggest to my friends. I am confident they will be benefited from this web site.  My web-site  Adelaida - schoolnewsnetwork.biz/.../netsoltrademark.php

Hello, its fastidious article regarding media print, we all know media is a wonderful source of facts.  Feel free to surf to my web site -  essay Writer - http://Kosmetika-optom.kz/otzyvy.html

Pretty element of content. I just stumbled upon your website and in accession capital to claim that I get actually enjoyed account your blog posts. Any way I will be subscribing for your feeds or even I fulfillment you get right of entry to consistently rapidly.  My web-site -  Write My Essay - Www.arcadeprehacks.com/.../92116-bebasikkk

Excellent blog you have got here.. It's hard to find good quality writing like yours these days. I really appreciate people like you! Take care!!  Here is my web page ...  essay Writer - www.coolnri.com/...nvers227o-de-PST-para-MBOX.aspx

What's up all, here every one is sharing these kinds of know-how, therefore it's good to read this webpage, and I used to visit this webpage daily.  Stop by my web site:  essay writer - www2.myfconline.com/.../entry.php?journal_id=81092

Stunning quest there. What occurred after? Take care!  Here is my web page -  essay writer - forum.Komovdvor.spb.ru/viewtopic.php?p=51013

Its like you read my mind! You seem to know so much about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a bit, but instead of that, this is fantastic blog. An excellent read. I'll certainly be back.  my web-site;  Essay writer - www.Retosfemeninos.com/forum/topics/murcia-plus

Hello, i think that i noticed you visited my web site so i came to go back the prefer?.I'm trying to find things to improve my site!I guess its good enough to use a few of your concepts!!

281989 259946You must be a part of a contest 1st with the most effective blogs online. Let me suggest this weblog! 501621

I don't even know how I ended up here, but I thought this post was good. I don't know who you are but certainly you're going to a famous blogger if you aren't already ;) Cheers!

I do not know if it's just me or if everyone else encountering issues with your website. It seems like some of the written text in your posts are running off the screen. Can somebody else please provide feedback and let me know if this is happening to them as well? This could be a issue with my web browser because I've had this happen previously. Kudos

Spot on with this write-up, I seriously feel this  web page - www.drstephenkritsick.com/.../  site needs much more attention. I'll probably be back again to see more, thanks for the advice! ставки на спортивные ставки

It's very simple to find out any matter on net as compared to textbooks, as I found this post at this web site.  pp Slot - pragmatic-play.net/.../

I don't even know how I ended up here, but I thought this post was good. I don't know who you are but definitely you are going to a famous blogger if you aren't already ;) Cheers! Suisse онлайн казино  Also visit my web-site  webpage - lecommercialafrique.com/.../

This paragraph is genuinely a fastidious one it assists new internet viewers, who are wishing for blogging. Ставка на матч  Also visit my blog post ...  homepage - www.uxwiki.io/index.php

Today, I went to the beach front with my children. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is completely off topic but I had to tell someone! скачать онлайн-казино  Here is my site ::  homepage - rokph.com/.../%D0%9F%D0%BE%D1%81%D1%82_N97_%D0%9F%D1%80%D0%BE_%D0%98%D0%B3%D0%BE%D1%80%D0%BD%D1%8B%D0%B9_%D0%91%D0%B8%D0%B7%D0%BD%D0%B5%D1%81_-_%D0%9A%D0%B0%D0%BA_%D0%9D%D0%B0%D0%B9%D1%82%D0%B8_%D0%98%D0%BD%D0%B2%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0

Excellent goods from you, man. I've understand your stuff previous to and you're just extremely great. I actually like what you have acquired here, certainly like what you're stating and the way in which you say it. You make it entertaining and you still take care of to keep it sensible. I can not wait to read much more from you. This is really a wonderful site.

Hi! I've been following your website for a while now and finally got the courage to go ahead and give you a shout out from  Kingwood Tx! Just wanted to mention keep up the great job!

This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your magnificent post. Also, I have shared your site in my social networks!

Wow, that's what I was exploring for, what a stuff! existing here at this webpage, thanks admin of this site. прямые ставки  Also visit my blog ::  homepage - rftheuprising.com/.../

Thanks for your marvelous posting! I definitely enjoyed reading it, you're a great author.I will remember to bookmark your blog and definitely will come back in the foreseeable future. I want to encourage  continue your great writing, have a nice holiday weekend! ставки на спортивные ставки  Here is my website -  web page - om-om.com/index.php:_%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C_%D0%98%D0%B3%D1%80%D1%83_%D0%94%D0%BE%D1%82%D0%B0_%D0%9F%D0%BE_%D0%9E%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD

I am regular visitor, how are you everybody? This article posted at this  web site - http://www.evesica.com/wikI/SangkmBighamyk  is in fact pleasant. киберспортивные команды

What a stuff of un-ambiguity and preserveness of precious experience concerning unpredicted feelings. ставки на биатлон  my homepage:  web site - www.mewtwo.co.uk/.../index.php

Thanks for sharing such a good thinking, post is good, thats why i have read it entirely ставки на букмекерские конторы  my homepage;  webpage - http://sandbox.referata.com/wiki/User:AmbroseSargood2

Have you ever thought about writing an ebook or guest authoring on other blogs? I have a blog based on the same topics you discuss and would love to have you share some stories/information. I know my viewers would appreciate your work. If you are even remotely interested, feel free to send me an email. ставки cs go  Feel free to visit my blog ...  site - www.universitynetwork.it/.../

Ta niezbędna witamina ma kluczowe znaczenie w metabolizowaniu węglowodanów, tłuszczów i białek. Zdejmij miksturę z ognia i dodaj 10 kropli ulubionego olejku eterycznego. Jak wspomnieliśmy wcześniej, witamina jest źródłem doskonałego odżywiania, a najlepszym sposobem jej uzyskania jest regularne przyjmowanie suplementów oleju z wątroby dorsza. Niektóre leki negatywnie reagują z niektórymi witaminami, dlatego w Twoim najlepszym interesie jest poinformowanie o tym lekarza lub farmaceuty. Porozmawiaj z lekarzem i powiedz jej, jakie witaminy bierzesz. Te witaminy musisz przyjmować tylko raz dziennie. Jednak nigdy nie przyjmuj więcej niż 100 miligramów cynku w ciągu jednego dnia. Prowadzonych jest więcej badań nad łączeniem IV w dużych dawkach witaminy C z innymi lekami. Granaty zawierają również tiaminę, ryboflawinę, kwas foliowy, kwas foliowy i witaminę E. Wszystkie te składniki odgrywają ważną rolę w metabolizmie komórek, działaniu enzymów i ogólnym samopoczuciu. Styl życia i dieta odgrywają główną rolę w zapaleniu stawów. Główną przyczyną jest dieta zooplanktonu. Cynk jest kluczową witaminą w walce i ochronie przed wolnymi rodnikami.

Ta niezbędna witamina ma kluczowe znaczenie w metabolizowaniu węglowodanów, tłuszczów i białek. Zdejmij miksturę z ognia i dodaj 10 kropli ulubionego olejku eterycznego. Jak wspomnieliśmy wcześniej, witamina jest źródłem doskonałego odżywiania, a najlepszym sposobem jej uzyskania jest regularne przyjmowanie suplementów oleju z wątroby dorsza. Niektóre leki negatywnie reagują z niektórymi witaminami, dlatego w Twoim najlepszym interesie jest poinformowanie o tym lekarza lub farmaceuty. Porozmawiaj z lekarzem i powiedz jej, jakie witaminy bierzesz. Te witaminy musisz przyjmować tylko raz dziennie. Jednak nigdy nie przyjmuj więcej niż 100 miligramów cynku w ciągu jednego dnia. Prowadzonych jest więcej badań nad łączeniem IV w dużych dawkach witaminy C z innymi lekami. Granaty zawierają również tiaminę, ryboflawinę, kwas foliowy, kwas foliowy i witaminę E. Wszystkie te składniki odgrywają ważną rolę w metabolizmie komórek, działaniu enzymów i ogólnym samopoczuciu. Styl życia i dieta odgrywają główną rolę w zapaleniu stawów. Główną przyczyną jest dieta zooplanktonu. Cynk jest kluczową witaminą w walce i ochronie przed wolnymi rodnikami.

Ta niezbędna witamina ma kluczowe znaczenie w metabolizowaniu węglowodanów, tłuszczów i białek. Zdejmij miksturę z ognia i dodaj 10 kropli ulubionego olejku eterycznego. Jak wspomnieliśmy wcześniej, witamina jest źródłem doskonałego odżywiania, a najlepszym sposobem jej uzyskania jest regularne przyjmowanie suplementów oleju z wątroby dorsza. Niektóre leki negatywnie reagują z niektórymi witaminami, dlatego w Twoim najlepszym interesie jest poinformowanie o tym lekarza lub farmaceuty. Porozmawiaj z lekarzem i powiedz jej, jakie witaminy bierzesz. Te witaminy musisz przyjmować tylko raz dziennie. Jednak nigdy nie przyjmuj więcej niż 100 miligramów cynku w ciągu jednego dnia. Prowadzonych jest więcej badań nad łączeniem IV w dużych dawkach witaminy C z innymi lekami. Granaty zawierają również tiaminę, ryboflawinę, kwas foliowy, kwas foliowy i witaminę E. Wszystkie te składniki odgrywają ważną rolę w metabolizmie komórek, działaniu enzymów i ogólnym samopoczuciu. Styl życia i dieta odgrywają główną rolę w zapaleniu stawów. Główną przyczyną jest dieta zooplanktonu. Cynk jest kluczową witaminą w walce i ochronie przed wolnymi rodnikami.

Ta niezbędna witamina ma kluczowe znaczenie w metabolizowaniu węglowodanów, tłuszczów i białek. Zdejmij miksturę z ognia i dodaj 10 kropli ulubionego olejku eterycznego. Jak wspomnieliśmy wcześniej, witamina jest źródłem doskonałego odżywiania, a najlepszym sposobem jej uzyskania jest regularne przyjmowanie suplementów oleju z wątroby dorsza. Niektóre leki negatywnie reagują z niektórymi witaminami, dlatego w Twoim najlepszym interesie jest poinformowanie o tym lekarza lub farmaceuty. Porozmawiaj z lekarzem i powiedz jej, jakie witaminy bierzesz. Te witaminy musisz przyjmować tylko raz dziennie. Jednak nigdy nie przyjmuj więcej niż 100 miligramów cynku w ciągu jednego dnia. Prowadzonych jest więcej badań nad łączeniem IV w dużych dawkach witaminy C z innymi lekami. Granaty zawierają również tiaminę, ryboflawinę, kwas foliowy, kwas foliowy i witaminę E. Wszystkie te składniki odgrywają ważną rolę w metabolizmie komórek, działaniu enzymów i ogólnym samopoczuciu. Styl życia i dieta odgrywają główną rolę w zapaleniu stawów. Główną przyczyną jest dieta zooplanktonu. Cynk jest kluczową witaminą w walce i ochronie przed wolnymi rodnikami.

Fantastic web site. A lot of helpful information here. I am sending it to some buddies ans additionally sharing in delicious. And of course, thanks in your effort! киберспорт кс го  Here is my homepage;  homepage - sahabiti.com/.../

Hey there are using Wordpress for your site platform? I'm new to the blog world but I'm trying to get started and create my own. Do you require any html coding knowledge to make your own blog? Any help would be greatly appreciated!

Wonderful web site. A lot of helpful information here. I am sending it to a few friends ans also sharing in delicious. And of course, thanks in your effort!

Add comment