Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    hiển thị sản phẩm và tin tức trên cùng 1 trang cshtml mvc3

    minh đang làm web bằng mô hình mvc3 bị vướng ở chỗ không biết hiển thị sản phẩm và tin tức trên cùng 1 trang cshtml vì bình thường thi mỗi trang(ví dụ index)chỉ hiển thị theo 1 actionresult của controler(ví dụ actionresult ListNews).có cách nào để hiện thị cả sản phẩm và tin tức cùng trên 1 trang không pro nào giúp mình với.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ý mình là là làm sao 1 view(razor cshtml)tham chiếu tới nhiều controler được.vì 1 trang ví dụ news.cshtml thì chỉ tham chiếu tới 1 actionresult news trong controler thôi như vậy mình không thể hiieenr thị tin tức và sản phẩm trên cùng 1 trang news được.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Razor view Engine hỗ trợ nhúng các thành phần từ 1 file cshtml này đến 1hiều file khác.Các tính năng Helpers và Section có thể giải quyết vấn đề của bạn.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi nguyen_hung5716
    minh đang làm web bằng mô hình mvc3 bị vướng ở chỗ không biết hiển thị sản phẩm và tin tức trên cùng 1 trang cshtml vì bình thường thi mỗi trang(ví dụ index)chỉ hiển thị theo 1 actionresult của controler(ví dụ actionresult ListNews).có cách nào để hiện thị cả sản phẩm và tin tức cùng trên 1 trang không pro nào giúp mình với.
    tạo nhiều cái ViewBag vào rồi đẩy list<object> cho nó thôi.sang view thì sử lý.
    không thì tạo cáo model trong đó có nhiều list<object> sang bên view thì sử lý.
    chắc mới học mvc3 hả.

  5. #5
    Ngày tham gia
    Sep 2015
    Đang ở
    hà nội
    Bài viết
    0
    Trích dẫn Gửi bởi nguyen_hung5716
    minh đang làm web bằng mô hình mvc3 bị vướng ở chỗ không biết hiển thị sản phẩm và tin tức trên cùng 1 trang cshtml vì bình thường thi mỗi trang(ví dụ index)chỉ hiển thị theo 1 actionresult của controler(ví dụ actionresult ListNews).có cách nào để hiện thị cả sản phẩm và tin tức cùng trên 1 trang không pro nào giúp mình với.
    1. Bạn có thể tạo 1 view model chứa dữ liệu của cả sản phẩm và tin tức rồi trong view cho hiển thị ra như bình thường.
    Ví dụ:

    // view model
    // giả sử bạn đã có 2 class Product và NewsItem để mô tả sản phẩm và tin tức
    // vd: Product có id, name, price...
    public class DataModel{
    public DataModel(){
    NewsItems = new List<NewsItem>();
    Products = new List<Product>();
    }
    public IList<NewsItem> NewsItems {get;set;}
    public IList<Product> Products {get;set;}
    }
    // controller
    public class HomeController : IController{
    public ActionResult Index(){
    var model = new DataModel();
    // cho dữ liệu vào
    // model.NewsItems = ...;
    // model.Products = ....;

    return View(model);
    }
    }
    // view
    @model DataModel
    @if(Model.NewsItems.Count > 0) {
    foreach(var newsItem in Model.NewsItems) {
    // xuat du liệu ra
    }
    }
    @if(Model.Products.Count > 0) {
    foreach(var product in Model.Products) {
    // xuat du liệu ra
    }
    }

    2. Bạn tạo 2 action mỗi action trả về partial view để hiển thị sản phẩm và tin tức. Rồi dùng @Html.Action() helper method gọi.
    Ví dụ:
    // news controller
    public class NewsController : IController{
    public ActionResult AllNews(){
    // ví dụ view model là List cho đơn giản nha
    List<NewsItem> newsItems = new List<NewsItem>();
    // cho dữ liệu vào
    // newsItems = ...;
    return PartialView("News",newsItems);
    }
    }
    // News partial view
    @model List<NewsItem>
    @if(Model.Count > 0) {
    foreach(var newsItem in Model) {
    // xuat du liệu ra
    }
    }

    // product controller
    public class ProductController : IController{
    public ActionResult AllProducts(){
    // ví dụ view model là List cho đơn giản nha
    List<Product> products= new List<Product>();
    // cho dữ liệu vào
    // products= ...;
    return PartialView("Product",products);
    }
    }
    // Product partial view
    @model List<Product>
    @if(Model.Count > 0) {
    foreach(var product in Model) {
    // xuat du liệu ra
    }
    }

    // home controller
    public class HomeController : IController{
    public ActionResult Index(){
    return View();
    }
    }
    // index view
    @Html.Action("AllNews","News")
    @Html.Action("AllProducts","Product")

    Chúc thành công!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •