Я не могу использовать Html .RenderAction в .cshtml - PullRequest
0 голосов
/ 11 июля 2020

FRONTEND

@{
    <div>
        @Html.RenderAction("UrunOzellikTipWidget", "Admin");
        @Html.RenderAction("UrunOzellikDegerWidget", "Admin");
    </div>
}

BACKEND

public ActionResult UrunOzellikEkle()
{
    return View(Context.Baglanti.Urun.ToList());
}

public PartialViewResult UrunOzellikTipWidged(int? katID)
{
    if (katID != null)
    {
        var data = Context.Baglanti.OzellikTip
            .Where(x => x.KategoriID == katID)
            .ToList();
        return PartialView(data);
    }
    else
    {
        var data = Context.Baglanti.OzellikTip.ToList();
        return PartialView(data);
    }
}

public PartialViewResult UrunOzellikDegerWidget(int? tipID)
{
    if (tipID != null)
    {
        var data = Context.Baglanti.OzellikDeger
            .Where(x => x.OzellikTipID == tipID)
            .ToList();
        return PartialView(data);
    }
    else
    {
        var data = Context.Baglanti.OzellikDeger
            .ToList();
        return PartialView(data);
    }
}

** КОД ОШИБКИ: Код серьезности Описание Подавление строки файла проекта Ошибка состояния CS0029 Невозможно неявно преобразовать тип void в объект **

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

@Html.RenderAction отображает результат и вместо того, чтобы вернуть его в виде строки, записывает его непосредственно в ответ и возвращает Void. Поэтому вам нужно будет использовать его внутри блока C#, обозначенного как @{ }, и заканчивать его точкой с запятой в конце, точно так же, как вы вызываете / вызываете функцию void.

Итак, ваш фронт -end необходимо изменить на:

<div>
    @{
        Html.RenderAction("UrunOzellikTipWidget", "Admin");
        Html.RenderAction("UrunOzellikDegerWidget", "Admin");
    }
</div>

Другой ответ (удаление лишних амперсандов) не сработает, потому что эти 2 RenderAction заключены в <div />. Если вы удалите амперсанд, они будут обрабатываться как обычные HTML. Он будет выводиться как:

введите описание изображения здесь

0 голосов
/ 11 июля 2020

Измените свой код в FRONTEND на следующее (удалите лишние амперсанды из обоих операторов Html.RenderAction).

<div>
      @{ Html.RenderAction("UrunOzellikTipWidget", "Admin"); }
      @{ Html.RenderAction("UrunOzellikDegerWidget", "Admin") };
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...