我试图在Gaming上写一个简单的下拉列表,说PC。
string url = @"http://restcountries.eu/rest/v1";
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(IEnumerable<Rootobject>));
WebClient syncClient = new WebClient();
string content = syncClient.DownloadString(url);
using (MemoryStream memo = new MemoryStream(Encoding.Unicode.GetBytes(content)))
{
IEnumerable<Rootobject> countries = (IEnumerable<Rootobject>)serializer.ReadObject(memo);
int i = countries.Count();
}
Console.Read();
程序崩溃:
http://localhost:9949/%3Ca%20href=
&#39; /&#39;中的服务器错误应用
从客户端(&lt;)中检测到潜在危险的Request.Path值。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Web.HttpException:从客户端(&lt;)检测到潜在危险的Request.Path值。
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[HttpException(0x80004005):从客户端(&lt;)检测到一个潜在危险的Request.Path值。] System.Web.HttpRequest.ValidateInputIfRequiredByConfig()+561 System.Web.PipelineStepManager.ValidateHelper(HttpContext context)+54
知道为什么吗?
答案 0 :(得分:1)
您不应将@Html.ActionLink
置于游戏项目的href
属性中,而是使用@Url.Action
。
@Html.ActionLink
创建整个a
标记,而您只需要控制器中正确操作的URL,这就是@Url.Action
的用途。
@Html.ActionLink("Name", "action", "controller")
的结果是<a href="/controller/action">Name</a>
。
@Url.Action("action", controller")
的结果只是网址字符串'/controller/action'
。
答案 1 :(得分:0)
你的问题就在这一行:
<a class="dropdown-toggle" role="button" aria-expanded="false" href="@Html.ActionLink("Gaming", "Gaming", "Gaming")" data-toggle="dropdown">Gaming <span class="caret"></span></a>
Html.ActionLink
呈现为<a>
标记。您正尝试将该标记设置为href
值。这显然不会起作用,因为元素不是有效的URL。实际上,您将获得如下代码:
<a class="dropdown-toggle"
role="button"
aria-expanded="false"
href="<a href=".....">blah</a>"
data-toggle="dropdown">Gaming <span class="caret"></span></a>
这不是有效的href
。您应该使用@Html.Action(...)
代替。这只会产生网址。