Asp Mvc вопрос модель прошло - PullRequest
0 голосов
/ 24 января 2019

вот мой код контроллера:

 public ActionResult ShowProducts(string productName)
    {

        ProductRepository blProduct = new ProductRepository();
        var src = blProduct.Where(p => p.Url.Trim() == productName.Trim());
        if (src.Any())
        {
            return View(src.Single());
        }
        else
        {
            return RedirectToAction("Index");
        }

    }

и вот мой код ViewPage:

@model IEnumerable<GymInternetShop.Models.DomainModels.Product>
@foreach (var item in Model)
{
<div class="container" dir="rtl">
<div class="card">
    <div class="container-fliud">
        <div class="wrapper row">

            <div class="preview col-md-6">

                <div class="preview-pic tab-content">
                    <div class="tab-pane active" id="pic-1"><img src="/Files/UploadImages/@item.Image" /></div>
                    <div class="tab-pane" id="pic-2"><img src="/Files/UploadImages/@item.Image" /></div>
                    <div class="tab-pane" id="pic-3"><img src="/Files/UploadImages/@item.Image" /></div>
                    <div class="tab-pane" id="pic-4"><img src="/Files/UploadImages/@item.Image" /></div>
                    <div class="tab-pane" id="pic-5"><img src="/Files/UploadImages/@item.Image" /></div>
                </div>
                <ul class="preview-thumbnail nav nav-tabs">
                    <li class="active"><a data-target="#pic-1" data-toggle="tab"><img src="/Files/UploadImages/@item.Image" /></a></li>
                    <li><a data-target="#pic-2" data-toggle="tab"><img src="/Files/UploadImages/@item.Image" /></a></li>
                    <li><a data-target="#pic-3" data-toggle="tab"><img src="/Files/UploadImages/@item.Image" /></a></li>
                    <li><a data-target="#pic-4" data-toggle="tab"><img src="/Files/UploadImages/@item.Image" /></a></li>
                    <li><a data-target="#pic-5" data-toggle="tab"><img src="/Files/UploadImages/@item.Image" /></a></li>
                </ul>

            </div>
            <div class="details col-md-6">
                <h3 class="product-title">@item.Name</h3>
                <div class="rating">
                    <div class="stars">
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star"></span>
                        <span class="fa fa-star"></span>
                    </div>

                </div>

                <p class="product-description">@Html.DisplayFor(model => item.Summery)</p>
                <h4 class="price">قیمت: <span>@item.Price.ToPrice()</span></h4>


                <div class="action">
                    <a class="add-to-cart btn btn-default" product="@item.Id">خرید</a>
                    <button class="like btn btn-default" type="button"><span class="fa fa-heart"></span></button>
                </div>
            </div>
        </div>
    </div>
</div>

спасибо за внимание, у меня естьпродукт на моей главной странице, когда я нажимаю кнопку Подробнее о продукте, я хочу перенаправить в этой модели представления (ShowProduct.csHtml), и это работает!и я хочу посмотреть информацию о моем продукте, я использую IEnumerable, потому что я хочу использовать forech для показа другого моего продукта (Releated Product) в нижней части моей страницы ShowProduct, но когда я запускаю свой проект и нажимаю на детали, я переадресовываю их в представлении Showproduct.Модель, но эта ошибка подходит для меня:

The model item passed into the dictionary is of type 'System.Data.Entity.DynamicProxies.Product_9F73B4E1D7A93B6E9A923F87D780EE891805309BEF7B2609BEB9BC3DE1B25A33', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[GymInternetShop.Models.DomainModels.Product]'.

1 Ответ

0 голосов
/ 24 января 2019

Если вы хотите показать все свои продукты, почему вы только передаете src.Single ()?

Ваше мнение также ожидает IEnumerable, но получает только один.

Я бы изменил

var src = blProduct.Where(p => p.Url.Trim() == productName.Trim());

до

List<Product> src = blProduct.Where(p => p.Url.Trim() == productName.Trim()).ToList();

и передайте его в представление:

if (src.Any())
        {
            return View(src);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...