我使用MVC模型制作图像网址并显示它。
我像这样制作图片网址:
string baseURL = string.Format("https://abc/Work/LookPage?pbid={0}", model.ID);
var builder = new UriBuilder(baseURL);
var query = HttpUtility.ParseQueryString(builder.Query);
query["pg"] = "1";
query["isStage"] = "false";
builder.Query = query.ToString();
model.ImageUrls.Add(1, builder.ToString());
我有一个名为WorkController的控制器
[OutputCache(Duration = 600, VaryByParam = "*", Location = OutputCacheLocation.Client)]
public virtual ActionResult LookPage(string pbid, int pg, bool? isbody, bool? isStage)
{
var ms = this.CreateLookPageImage(pbid, pg, isbody, isStage, false);
if (ms == null)
return HttpNotFound();
return new FileStreamResult(ms, "image/jpeg");
}
在视图中,我这样写:
<a><img class="shadow" src="<%:Model.ImageUrls[1] %>"/></a>
这实际上有效。 但有时这个错误来了:
System.NullReferenceException: Object reference not set to an instance of an object.
在System.Web.HttpCookieCollection.Add(HttpCookie cookie) 在CWorks.Web.Filter.SiteSelectorAttribute.OnActionExecuting(ActionExecutingContext filterContext)
[Request.RawUrl]/Work/LookPage?pbid=PBER-2972311310171610590&pg=8&isStage=true
因为&amp;在网址中被转换为&amp; amp;所以路由不起作用。 我怎样才能避免将&符号(&amp;)转换为&amp; amp ??
我也不知道为什么有时网址是好的(&
)而有时候不是(被转换)
答案 0 :(得分:2)
试试这个。它将编码的字符串转换为解码的html标记。即删除&
并替换为'&'
Html.Raw(Model.ImageUrls[1]);
答案 1 :(得分:0)
https://msdn.microsoft.com/en-us/library/gg480740(v=vs.118).aspx
<a><img class="shadow" src="<%= Html.Raw(Model.ImageUrls[1]) %>"/></a>