Есть ли способ иметь Controller, ViewModel и View без модели?Это только для просмотра индекса - PullRequest
0 голосов
/ 10 февраля 2019

То, что я хочу сделать, - это параметризованный отчет, я бы хотел использовать для этого SSRS или другие необычные инструменты, но на данный момент это опасно, потому что я действительно не хочу возиться с сервером компании, и я неиметь много времени;Также, если это инструмент, это должен быть бесплатный и легкий инструмент, и я его пока не нашел.

Итак, моя идея - создать простой контроллер с индексом, который будет возвращать список для просмотра в соответствии с параметрами.и View будет использовать эту ViewModel в качестве модели, после чего пользователи смогут экспортировать этот список в CSV или PDF, проблема в следующем: MVC запрашивает реальную модель БД для завершения строительных лесов, как это можно сделать?

Контроллер (я называю здесь сохраненный процесс)

public class ReporteEntregasPresentacionController : Controller
{
    private EntregaMedicamentosEntities db = new EntregaMedicamentosEntities();

    public ActionResult Index(DateTime DateFrom, DateTime DateTo)
    {
        ReporteEntregasPresentacionViewModel rep = new ReporteEntregasPresentacionViewModel();

        string sqlQuery = "[dbo].[spEntregasPorPresentacion] ({0},{1})";
        Object[] parameters = { DateFrom, DateTo };            
        rep.LstEntregasPresentacionViewModel = db.Database.SqlQuery<ItemEntregasPresentacionViewModel>(sqlQuery, parameters).ToList();

        return View(rep);
    }
}

ViewModel :

public class ReporteEntregasPresentacionViewModel
{
    public int index;
    public List<ItemEntregasPresentacionViewModel> LstEntregasPresentacionViewModel;
}

public class ItemEntregasPresentacionViewModel    {

    public string idProducto { get; set; }
    public string Descripcion { get; set; }
    public string EntregasTotales { get; set; }
}

У меня нет Просмотр сейчас, но я должен быть примерно таким:

@model EntregaMedicamentos.Models.ReporteEntregasPresentacionViewModel
<link href="~/Content/css/styles.css" rel="stylesheet" />
@{
    ViewBag.Title = "ReporteEntregasPresentacion";
}

<h2>ReporteEntregasPresentacion</h2>

@using (Html.BeginForm("Index", "Entrega", FormMethod.Post))
{
    <div class="card text-white bg-secondary">
        <h5 class="card-header">Search</h5>
        <div class="card-body">
            <div class="row">
                <div class="col-md-6">
                    <div class="input-group">
                        @Html.TextBox("DateFrom", ViewBag.currentFilter1 as DateTime?, new { @class = "form-control", placeholder = "Desde fecha", @readonly = "true", type = "datetime" })
                        @Html.TextBox("DateTo", ViewBag.currentFilter2 as DateTime?, new { @class = "form-control", placeholder = "Hasta fecha", @readonly = "true", type = "datetime" })
                        <button id="Submit4" type="submit" style='font-size:22px ;color:blue'><i class='fas fa-search'></i></button>
                    </div>
                </div>
            </div>
        </div>
    </div>
}

<br>
<table class="table table-striped ">
    <tr class="table-primary">
        <th>
            Código
        </th>
        <th>
            Producto
        </th>
        <th>
            Entregas Totales
        </th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.idProducto)
            </td>

            <td>
                @Html.DisplayFor(modelItem => item.Descripcion)
            </td>

            <td>
                @Html.DisplayFor(modelItem => item.Valor)
            </td>
        </tr>
    }
</table>

1 Ответ

0 голосов
/ 17 февраля 2019

Я закончил тем, что создал реальную таблицу / модель, а затем она отлично работала с моделью представления.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...