繁体   English   中英

我不能使用 Html.RenderAction in.cshtml

[英]I cant using Html.RenderAction in .cshtml

前端

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

后端

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);
    }
}

**错误代码:严重性代码描述项目文件行抑制 State 错误 CS0029 无法将类型“void”隐式转换为“object”**

FRONTEND中的代码修改为以下内容(从Html.RenderAction语句中删除多余的 & 符号)。

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

@Html.RenderAction呈现结果,而不是将其作为字符串返回,而是将其直接写入响应并返回Void 因此,您必须在 C# 块中使用它,表示为@{ } ,并以分号结尾,就像调用/调用 void function 一样。

所以你的前端需要改成:

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

另一个答案(删除多余的&符号)将不起作用,因为这 2 个RenderAction被包裹在<div />中。 如果删除 & 符号,它们将被视为普通的 HTML。 它将 output 为:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM