Truyền và lấy dữ liệu từ View sang Controller trong MVC asp.net

Thảo luận trong 'Lập Trình Website MVC5 & MVC6' bắt đầu bởi admin, 26/9/17.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    3,915
    Đã được thích:
    793
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Truyền và lấy dữ liệu từ View chuyển sang Controller trong mô hình MVC của web asp.net gồm rất nhiều cách khác nhau.
    Hôm nay mình sẽ hướng dẫn các bạn 4 cách truyền dữ liệu được sự dụng 99% tại MVC và 7 cách lấy dữ liệu tại Controller mà bạn nào học mô hình này cũng phải biết, sử dụng nó trong hết quảng đời làm web theo mô hình MVC này.

    4 cách truyền bao gồm : Request, Form Collection, Action Arguments, Model bạn có thể dụng bất kỳ cách nào cũng được, tùy vào dữ liệu nhiều ít và quen thì sử dụng, thường dùng 3 cách Request, Action Arguments, Model

    truyen-va-lay-du-lieu-tu-view-sang-controller-model.jpg

    1. Cách Request dữ liệu

    1.1 Cách truyền trên url web dạng tham số.

    Ví dụ ta có đường dẫn:
    Mã:
    http://localhost:58408/TruyenThamSoAction/ViDu1?ho=Phạm&ten=Sơn&congViec=IT
    Cách lấy: có 3 cách
    • String value=Request[“ParameterName”];
    • String value=Request.QueryString[“ParameterName”];
    • String value=Request.Params[“ParameterName”];
    VD:
    • String value=Request[“ho”]; // ho=Phạm
    • String value=Request.Params[“ten”]; // ten=Sơn

    • String value=Request.Params[“congviec”]; // congviec=ID
    Lưu ý: 3 cách trên đều giống nhau, bạn chọn cách nào cũng được

    1.2 Cách truyền theo url dạng ID.

    Xem cơ chế tại: App_Start - > RouteConfig.cs

    Theo cơ chế : {controller}/{action}/{id}

    VD:
    Mã:
    http://localhost:58408/ControllerViDu/ActionViDu/CongSon
    Cách lấy:
    Mã:
    Public ActionResult ActionViDu(string id)
    {
       //cái ta nhận được id = CongSon
    }
    
    Lưu ý: bắt buộc lúc lấy phải giống trên là biến id kiểu dữ liệu string nhé.

    1.3 Truyền và lấy dạng tham số kết hợp id.

    VD:
    Mã:
    http://localhost:58408/ControllerViDu/ActionViDu/Pham?ten=Sơn&congViec=IT
    
    Cách lấy:
    Mã:
    public ActionResult ActionViDu (string id)
    {
       ViewBag.Surname = id; // id=Pham
       ViewBag.Name = Request["ten"]; // ten=Sơn
       ViewBag.Job = Request["congViec"]; // congviec=IT
       return View();
    }
    
    2. Get&Post trong Controller với Form Collection

    VD: ta có form dữ liệu tại view như sau
    Mã:
    <form action=”/Student/Register” method=”post”>
        Id <input name=”Id” />
        Id <input name=”Name” />
        Id <input name=”Marks” />
        <input type=”submit” value=”Register” />
    </form>
    
    Có 2 cách lấy:

    2.1 Cách dùng Request.Form

    Cấu trúc: String Value=Request.Form[“<tham số>”];

    VD:
    Mã:
    Public ActionResult Register()
    {
        String Id= Request.Form[“Id”];
        String Name= Request.Form[“Name”];
        double Marks= Convert.ToDouble(Request.Form[“Marks”]);
        Return View();
    }
    
    2.1 Các dùng FormCollection

    VD:
    Mã:
    Public ActionResult Register(FormCollection Fields)
    {
       String Id= Fields[“Id”];
       String Name= Fields[“Name”];
       double Marks= Convert.ToDouble(Fields[“Marks”]);
       Return View();
    }
    
    3. Sử dụng Action Arguments

    truyen-du-lieu-dang-action-arguments.png

    4. Sử dụng Model

    VD: ta có Form
    Mã:
    <form action=”/Student/Register” method=”post”>
        Id <input name=”Id” />
        Id <input name=”Name” />
        Id <input name=”Marks” />
        <input type=”submit” value=”Register” />
    </form>
    Cách lấy dữ liệu bằng Model:

    B1: tạo 1 Class trong Models để lấy dữ liệu truyền từ Form Action truyền đi, Click chuột phải vào folder Models chọn tạo mới 1 class.
    Mã:
    Public string StudentInfo
    {
       Public string Id {get; set;}
       Public string Name {get; set;}
       Public double Marks {get; set;}
    }
    B2: tạo 1 ActionResult trong controller để lấy dữ liệu ra
    Mã:
    Public ActionResult UserModel(StudentInfo model)
    {
       String Id= model.Id;
       String Name= model.Name;
       double Marks= Convert.ToDouble(model.Marks);
       Return View();
    }
     
    Cảm ơn đã xem bài:

    Truyền và lấy dữ liệu từ View sang Controller trong MVC asp.net



Chủ để tương tự : Truyền lấy
Diễn đàn Tiêu đề Date
Rao Vặt Miền Bắc Xưởng in tạp chí - in báo - in tập san, hồi ký, tự truyện lấy nhanh tại Hà Nội 29/8/17
Rao Vặt Miền Bắc Cách phòng chống lây truyền sùi mào gà 3/8/17
Rao Vặt Miền Bắc Con đường khiến tim la lây truyền nhanh chóng 22/2/17
Rao Vặt Miền Bắc Bệnh giang mai và con đường lây truyền bệnh 4/1/17
Rao Vặt Miền Bắc Bệnh giang mai lây truyền qua đường 2/1/17

Like và Share ủng hộ ITSEOVN