将带有图像内容的 ViewBag 解析为 Partial View
Parse ViewBag with image content to Partial View
我编写的代码应该 return 每种语言有 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"。我在这里做错了什么?
在 return 调用上创建分部视图 _AdRotator 并导航到它时,显示以下错误消息:
Error message
由于这个错误,我想改用它,如 AdRotator() 方法所示:
return PartialView("~/Views/Home/_AdRotator.cshtml");
这可能是问题所在吗?我查看了 Whosebug 并发现了类似的问题,但无法解决我的问题。
我认为您在渲染局部视图时没有调用控制器中的操作。
而不是@Html.Partial("~/Views/Home/_AdRotator.cshtml")
尝试:@Html.Action('AdRotator', 'Home')
那应该调用 AdRotator
动作,填充 ViewBag 并显示图像。
我编写的代码应该 return 每种语言有 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"。我在这里做错了什么?
在 return 调用上创建分部视图 _AdRotator 并导航到它时,显示以下错误消息:
Error message
由于这个错误,我想改用它,如 AdRotator() 方法所示:
return PartialView("~/Views/Home/_AdRotator.cshtml");
这可能是问题所在吗?我查看了 Whosebug 并发现了类似的问题,但无法解决我的问题。
我认为您在渲染局部视图时没有调用控制器中的操作。
而不是@Html.Partial("~/Views/Home/_AdRotator.cshtml")
尝试:@Html.Action('AdRotator', 'Home')
那应该调用 AdRotator
动作,填充 ViewBag 并显示图像。