gpt4 book ai didi

c# - 请求主视图时出现部分 View 错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:36 24 4
gpt4 key购买 nike

我有一个显示商店信息的 View ,在这个 View 的底部是一个部分 View ,它呈现该商店的特定促销信息。

在此 View 中,我使用以下代码片段呈现给定商店的 Logo

<div class="controls">
<img src="data:image;base64,@System.Convert.ToBase64String(Model.RetailerImage)" width="80" height="80" />
</div>

现在,当我运行它时,加载促销的部分 View 会抛出错误

System.Web.dll 中出现“System.Web.HttpException”类型的异常,但未在用户代码中处理附加信息:执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错。

我的部分在 View 的底部

 <fieldset class="well">
@Html.Action("ListRetailerPromotions", "Promotion", Model)
</fieldset>

调用这个 Controller

   [AuthorizeRolesAttribute(RoleType.Retailer, RoleType.Administrator)]
public ActionResult ListRetailerPromotions(Retailer retailer)
{
PromotionViewModel pvm = new PromotionViewModel
{
RetailerId = retailer.RetailerID,
Promotions = UnitOfWork.Promotion.GetPromotionsForRetailer(retailer.RetailerID).ToList()
};

return PartialView(pvm);
}

但是当我得到蓝屏死机时,有些人会说错误消息显示为

输入不是有效的 Base-64 字符串,因为它包含非 base-64 字符、两个以上的填充字符或填充字符中的非法字符。

但如果我将部分 View 注释掉,则所有工作都按预期进行。

更新在按如下方式引用 RetailerImage 之后,我通过将 RetailerImage 设置为 null 来使其工作

<div class="control-group">
<label class="control-label" for="WebAddress">
Preview
</label>
<div class="controls">
<img src="data:image;base64,@System.Convert.ToBase64String(Model.RetailerImage)" width="80" height="80" />
</div>
</div>
{
Model.RetailerImage = null;

}
</div>

我不得不承认这是一个令人反感的解决方案。

最佳答案

尝试在图像字符串上使用 Raw

@System.Convert.ToBase64String(@Html.Raw(Model.RetailerImage))

如果您看到错误消息,它会提示非 base 64 字符。

这意味着框架对 Model.RetailerImage 的内容进行了 HTML 编码。防止此默认行为的一种方法是使用 Raw 功能。

关于c# - 请求主视图时出现部分 View 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com