如何在带参数的 MVC4 中使用 Url.Content()?
How can I use Url.Content() in MVC4 with parameters?
这是我的代码:
@Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True")
我正在为 MVC4 中的应用程序缓存动态构建清单文件。我知道它即将淘汰(或似乎是),但我仍然需要支持旧版浏览器。
该网站采用 MVC 格式,但我们确实有几个 ASPX 页面,因为我们需要使用一些遗留控件。因此,在我的清单文件中,我尝试使用 Url.Content() 创建到 ASPX 页面的相对路径,这似乎有效,直到我需要添加几个参数并且“&”被编码。没有“&”它似乎工作(除了它 loads/caches 错误的东西)。
因为它是一个清单文件,我无法进行重定向,因为任何重定向都会导致应用程序缓存失败。
即使它是 MVC4,我也不能只从“~”开始,因为它不会像在图像或锚点中那样被解析。
只需将查询字符串附加到 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())
起初我以为是 Url.Content 对值进行编码,但实际上是 Razor 引擎在做。 Html.Raw 更正了它,但我确实不得不在之后添加一个空行,因为换行符也丢失了。
@Html.Raw(Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True"))
Paul Abbott 的回答让我得出了这个结论,非常感谢他。
这是我的代码:
@Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True")
我正在为 MVC4 中的应用程序缓存动态构建清单文件。我知道它即将淘汰(或似乎是),但我仍然需要支持旧版浏览器。
该网站采用 MVC 格式,但我们确实有几个 ASPX 页面,因为我们需要使用一些遗留控件。因此,在我的清单文件中,我尝试使用 Url.Content() 创建到 ASPX 页面的相对路径,这似乎有效,直到我需要添加几个参数并且“&”被编码。没有“&”它似乎工作(除了它 loads/caches 错误的东西)。
因为它是一个清单文件,我无法进行重定向,因为任何重定向都会导致应用程序缓存失败。
即使它是 MVC4,我也不能只从“~”开始,因为它不会像在图像或锚点中那样被解析。
只需将查询字符串附加到 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())
起初我以为是 Url.Content 对值进行编码,但实际上是 Razor 引擎在做。 Html.Raw 更正了它,但我确实不得不在之后添加一个空行,因为换行符也丢失了。
@Html.Raw(Url.Content("~/AspNetWebForms/ViewPDF.aspx?id=" + docID.ToString() + "&small=True"))
Paul Abbott 的回答让我得出了这个结论,非常感谢他。