这是我的代码:
@Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True")
我正在为MVC4中的应用程序缓存动态构建我的Manifest文件。我知道它正在出路(或似乎是),但我仍然需要支持旧的浏览器。
该网站位于MVC中,但我们确实有几个ASPX页面,因为我们需要使用一些旧版控件。所以在我的清单文件中,我试图使用Url.Content()创建ASPX页面的相对路径,这似乎有效,直到我需要添加一些参数和"&"被编码。没有"&"它似乎工作(除了它加载/缓存错误的东西)。
由于它是一个清单文件,我无法进行重定向,因为任何重定向都会导致应用程序缓存失败。
即使它是MVC4,我也不能只是从"〜"开始。因为它没有像在图像或锚中那样被解析。
答案 0 :(得分:2)
只需将查询字符串附加到Url.Content
的输出。
@(Url.Content("~/AspNetWebForms/ViewPDF.aspx) + "?id=" + docID.ToString() + "&small=True")
或
@string.Format("{0}?id={1}&small=true",
Url.Content("~/AspNetWebForms/ViewPDF.aspx"), docID.ToString())
答案 1 :(得分:1)
起初我以为是编码值的Url.Content,但它实际上就是Razor引擎。 Html.Raw纠正了它,虽然我之后必须添加一个空行,因为换行也丢失了。
@Html.Raw(Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True"))
Paul Abbott的回答引导我得出这个结论,所以都要感谢他。