繁体   English   中英

将具有图像内容的ViewBag解析为Partial View

[英]Parse ViewBag with image content to Partial View

我编写的代码应返回每种语言2个标题文件。 总共有6个标题文件(.jpg文件)。 标语文件中的2个应显示在“索引”页面上。 如果用户是法语用户,则应显示法语的2个横幅文件。 我的家庭控制器中有以下方法:

 public ActionResult AdRotator()
    {
        //nog opvullen met banners
        var userlanguage = Request.UserLanguages;


        if (userlanguage.Equals("nl-nl || nl-be"))
        {
            ViewBag.File1 = Server.MapPath("~") + "Content/Images/Banners/Banner_NL.jpg";
            ViewBag.File2 = Server.MapPath("~") + "Content/Images/Banners/Banner2_NL.jpg";
            // ViewBag.File1 =  Url.Content("~/Content/Images/Banners/Banner_NL.jpg");
            // ViewBag.File2 = Url.Content("~/Content/Images/Banners/Banner2_NL.jpg");
            // ViewBag.File1 = File("~/Content/images/Banners/Banner_NL.jpg", "image/jpg");

            //view meegeven omdat aangemaakte partialview anders niet gevonden wordt na creatie
            return PartialView("~/Views/Home/_AdRotator.cshtml");

        }
        else
        {
            if(userlanguage.Equals("fr-fr||fr-lu"))
            {
                ViewBag.File1 = Server.MapPath("~") + "Content/Images/Banners/Banner_FR.jpg";
                ViewBag.File2 = Server.MapPath("~") + "Content/Images/Banners/Banner2_FR.jpg";
                return PartialView("~/Views/Home/_AdRotator.cshtml");
            }
            else
            {
                ViewBag.File1 = Server.MapPath("~") + ("~/Content/Images/Banners/Banner_EN.jpg");
                ViewBag.File2 = Server.MapPath("~") + ("~/Content/Images/Banners/Banner2_EN.jpg");
                return PartialView("~/Views/Home/_AdRotator.cshtml");
            }
        }
    }

注释中的代码是我以前使用过的代码,但是没有用。

在索引页面上,我只渲染部分视图:

@Html.Partial("~/Views/Home/_AdRotator.cshtml");

部分视图:

<img src="@ViewBag.File1" alt="File1" /> <img src="@ViewBag.File2" alt="File2" />

运行网站时,将显示文本“ File1”和“ File2”。 我在这里做错了什么?

在回叫上创建局部视图_AdRotator并导航至该局部视图时,会显示以下错误消息:

错误信息

由于存在此错误,因此我想改用它,如AdRotator()方法所示:

return PartialView("~/Views/Home/_AdRotator.cshtml");

可能是问题所在吗? 我环顾了stackoverflow,发现了类似的问题,但无法解决我的问题。

我认为您正在渲染部分视图,而无需在控制器中调用操作。

代替@Html.Partial("~/Views/Home/_AdRotator.cshtml")

尝试: @Html.Action('AdRotator', 'Home')

这应该调用AdRotator操作,填充ViewBag并显示图像。

暂无
暂无

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

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