如何在ASP.NET中将数据从控制器显示到部分视图

问题描述

现在在社区的帮助下,我已经能够做到这一点,我正试图将控制器中的数据显示到我的局部视图中,但是我被卡住了,

在主页上我有以下代码

@model Entidades.viewmodel.eTiendaOnlineviewmodel
<div class="container my-4">
<h3 class="text-center">Los más vendidos</h3><hr />
@{

    Html.RenderPartial("vpprueba",Model.productosmasvendidos);
}

在我的控制器中,我有这个:

using Entidades.viewmodel;
using System.Web.Mvc;
namespace TiendaOnline.Controllers
{
public class tiendaController : Controller
    {
        // GET: tienda
    public ActionResult index()
    {
        //Creo la entidad general
        eTiendaOnlineviewmodel onlinestore = new eTiendaOnlineviewmodel();
eClaseProductoviewmodel clase1 = new eClaseProductoviewmodel()
        {
            cod_clase_producto = "0001",descripcion = "CLASE NO. 1",imagen = "~/Content/images/alacena.jpg"
        };

        onlinestore.clasesproducto.Add(clase1);

        eClaseProductoviewmodel clase2 = new eClaseProductoviewmodel()
        {
            cod_clase_producto = "0002",descripcion = "CLASE NO. 2",imagen = "~/Content/images/Farmacia.jpg"
        };

        onlinestore.clasesproducto.Add(clase2);

        eClaseProductoviewmodel clase3 = new eClaseProductoviewmodel()
        {
            cod_clase_producto = "0003",descripcion = "CLASE NO. 3",imagen = "~/Content/images/pescado.jpg"
        };
    return View(onlinestore);
    }

在我的局部视图中,我有这个:

@model List<Entidades.viewmodel.eProductosviewmodel>
@{
var id = "my-own-id";
var random = new Random();
var length = random.Next(10,21);
var items = new List<Entidades.viewmodel.eProductosviewmodel>();

for (int i = 0; i < length; i++)
{
    items.Add(new Entidades.viewmodel.eProductosviewmodel
    {
//in this part is where I need to match the items variable for the data that comes to me from the controller to display it,I have tried to do it but I cannot do it

        //imagen1 = $"https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20({i + 21}).jpg",//descripcion_corta = $"Card Title {i + 1}"
    });
}

var itmIndex = 0;
var pages = items.Count / 3;

if (items.Count % 3 > 0)
{
    pages++;
}

<div id="@id" class="carousel slide carousel-multi-item" data-ride="carousel">
    <!--Controls-->
    <div class="controls-top text-right my-2">
        <a class="btn btn-primary rounded-circle" href="#@id" data-slide="prev"><</a>
        <a class="btn btn-primary rounded-circle" href="#@id" data-slide="next">></a>
    </div>
    <!--/.Controls-->
    <!--Indicators-->
    <ol class="carousel-indicators">
        @for (int i = 0; i < pages; i++)
        {
            if (i == 0)
            {
                <li data-target="#@id" data-slide-to="@i" class="active"></li>
            }
            else
            {
                <li data-target="#@id" data-slide-to="@i"></li>
            }
        }
    </ol>
    <!--/.Indicators-->
    <!--Slides-->
    <div class="carousel-inner" role="listBox">
        @for (int slide = 0; slide < pages; slide++)
        {
            <div class="carousel-item @(slide == 0 ? "active" : string.Empty)">
                <div class="row">
                    @for (int item = 0; item < 3; item++)
                    {
                        var m = items[itmIndex++ % pages];
                        var colCls = string.Empty;

                        if (item > 0)
                        {
                            colCls = "clearfix d-none d-md-block";
                        }
                        <div class="col-md-4 @colCls">
                            <div class="card mb-2">
                                <img class="card-img-top" src="@m.imagen1" alt="Card image cap @(itmIndex + 1)">
                                <div class="card-body">
                                    <h4 class="card-title">@m.descripcion_corta</h4>
                                    <p class="card-text">
                                        Description text example
                                    </p>
                                    <a class="btn btn-primary">Button</a>
                                </div>
                            </div>
                        </div>
                    }
                </div>
            </div>
        }
    </div>
    <!--/.Slides-->
</div>
}

我正在为此使用viewmodels,如果有人知道我如何将控制器中的数据显示到视图中

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)