如何避免将&符号(&)转换为&在c#MVC中

时间:2016-01-19 01:15:41

标签: c# asp.net-mvc

我使用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&amp;pg=8&amp;isStage=true

因为&amp;在网址中被转换为&amp; amp;所以路由不起作用。 我怎样才能避免将&符号(&amp;)转换为&amp; amp ??

我也不知道为什么有时网址是好的(&)而有时候不是(被转换)

2 个答案:

答案 0 :(得分:2)

试试这个。它将编码的字符串转换为解码的html标记。即删除&amp;并替换为'&'

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>