when created view called products specified model product trough view generator window , used model show products database
@foreach (var item in model) { <div class="col-md-3 col-sm-3 col-column productbox"> <img src="@url.content(item.productimg)" class="img-responsive" > <div class="producttitle">@html.displayfor(modelitem => item.productname)</div> <div class="producttitle">@html.displayfor(modelitem => item.productdesc)</div> <div class="productprice"><div class="pull-right"><a href="#" class="btn btn-danger btn-sm" role="button">buy</a></div><div class="pricetext">@html.displayfor(modelitem => item.productprice)</div></div> </div> }
now want generate list of categories database on same view actionlinks when user clicks, show products category ...something
<div class="col-md-2"> <ul> @foreach (var item in model) { <li> @html.actionlink(@html.displayfor(modelitem => item.categoryname).tostring(),"products",new { controller="home",action="products",id=modelitem=>item.categoryid}) </li> } </ul> </div>
but need include somehow model of category in view included product
@model ienumerable<onlineprodajaslika.models.product>
i mvc newbie , cant figure out ,any appreciated
i think you're after view model has 1 or more properties, like:
public class productsviewmodel { // property hold products public ienumerable<product> products { get; set; } // property hold category details public ienumerable<category> categories { get; set; } } public class category { public string categoryname { get; set; } } public class product { public string productname { get; set; } }
then can populate these details within controller action , return model:
public mycontroller : controller { public actionresult productspage() { var viewmodel = new productsviewmodel { products = new list<product>(), categories = new list<category>() }; // populate products viewmodel.products.add(new product { productname = "product 1" }); viewmodel.products.add(new product { productname = "product 2" }); // populate categories on same view model viewmodel.categories.add(new category { categoryname = "category 1" }); viewmodel.categories.add(new category { categoryname = "category 2" }); // return view model of details return view(viewmodel); } }
then define view model in view , loop data:
@model productsviewmodel @* loop products in model *@ @foreach(var product in model.products) { <div>@product.productname</div> } @* loop categories in model *@ @foreach (var category in model.categories) { <div>@category.categoryname</div> }
Comments
Post a Comment