我将 html 存储在我的数据库中的 JSON blob 中,该 blob 反序列化为ViewCargo
C# 中的动态 , 。在视图级别,然后我使用类似的东西@Model.ViewCargo.PromoDetails
来输出 HTML。
这很好用,除非在我需要更新动态属性中的内容的情况下。一个例子可能是段落标记内的一些消息,其中包含一个锚标记,其中需要根据正在加载页面的用户设置 href 属性,例如:
<p>Thank you for coming back to our promotion! It looks like you have already
received a promotional card for this promotion! You can click
<a href="[need to inject URL here]" target="blank">here</a> to retrieve
your promotional gift card!</p>
在这种情况下,URL 来自对数据库的调用,该数据库查找用户和促销并确定用户已加入此促销。因此,我想为他们提供一个链接来检索他们现有的卡(而不是发行新卡)。
我考虑过的一件事是在我的 json'd HTML 中放置一个占位符并使用 String.Replace。例如:
string existingUrl = db.UserAlreadySubmitted(userId,promoId);
if(!string.IsNullOrEmpty(existingUrl)) {
Campaign.ViewCargo.PromoDetails = Campaign.ViewCargo.PromoDetails.Replace("[URLPlaceholder]",existingUrl);
}
return View(Campaign);
因为我有一个中央控制器来处理几十个视图的视图加载,所以我想避免用这样的代码阻塞我的控制器方法。还有什么我可以做的吗?