我想创建
我OAuth的图片 让他们可点击 这是我的代码,
我使用pro作为变量来连接OAuth提供程序的图像
谢谢
EHI
@foreach (var provider in loginProviders)
{
var pro = "~/images/icons/" + @provider.Name;
pro = pro + ".gif";
<button type="submit" class="btn btn-default" name="provider" value="@provider.Name" title="Log in using your @provider.DisplayName account">@provider.Name</button>
<img img src=@pro />
我得到的回报是https://localhost:44335/Accounts/~/images/icons/Facebook.gif
答案 0 :(得分:1)
~
字符实际上不是受支持的URL组件。按照惯例,ASP.NET将其视为引用文档根目录的路径组件,并以某种方式在处理HTML时动态替换它。在这里,这将是Razor解决这个问题的工作,但这似乎并不是出于某种原因而发生的。我无法确定为什么使用您提供的代码,但作为解决方法,您可以尝试使用Url.Content
包装它:
var pro = Url.Content("~/images/icons/" + @provider.Name);
这基本上明确强制它在变量中设置之前被解析。