【问题标题】:A potentially dangerous Request.Path value was detected ActionLink in button在按钮中检测到有潜在危险的 Request.Path 值 ActionLink
【发布时间】:2015-07-06 13:26:40
【问题描述】:

我正在尝试将一个按钮变成一个操作链接,该链接将我带到另一个页面,但是我需要将 new { id = item.Id } 发送到我的另一个页面,我不知道该怎么做:

            @foreach (var item in Model.CurrentPost.Tags)
    {
        <div class="col-lg-2">
            <a href="@Html.ActionLink("" + item.Name + "", "GetPostsByTag", "Post", new { id = item.Id }, null)" class="btn btn-default btn-lg">
                @item.Name
            </a>
        </div>

    }

我收到此错误:

从 客户端 (

当点击按钮时,它试图带我去的网址是:

http://localhost:52202/Post/MainDetails/<a href="/Post/GetPostsByTag?id=54">Picture</a>

不知道为什么要在末尾或href上附加图片,应该是:

http://localhost:52202/Post/MainDetails/GetPostsByTag?id=54

【问题讨论】:

  • @Html.ActionLink() 生成一个&lt;a&gt; 标记。您不需要将其包装在另一个 &lt;a&gt; 标记中。 - 只需使用@Html.ActionLink(item.Name, "GetPostsByTag", "Post", new { id = item.Id }, null)
  • @StephenMuecke 你知道如何解决这个问题吗? stackoverflow.com/questions/29907772/…
  • 该问题中的第一条评论应该可以解决问题(将DeleteRule 设置为cascade
  • 工作,谢谢@StephenMuecke

标签: c# html asp.net-mvc linq razor


【解决方案1】:

@Html 用于生成 HTML,@Url 中的匹配方法(如 UrlHelper.Action )应用于生成类似 href 属性的 url。

如果您需要对生成的 HTML 进行详细控制,请使用 @Url.Action 来解决此问题

<a href='@Url.Action("" + item.Name, "GetPostsByTag", "Post", 
       new { id = item.Id }, null)' class="btn btn-default btn-lg">
            @item.Name
        </a>

或者使用@Html.ActionLink生成整个&lt;a&gt;标签:

@Html.ActionLink(item.Name, "GetPostsByTag", "Post", new { id = item.Id },
         new {class="btn btn-default btn-lg"})

【讨论】:

  • 旁注:请注意,ActionLink 允许在A 标签上设置属性(如本例中的“类”),因此原始代码不需要完全自定义渲染。
猜你喜欢
  • 2013-08-31
  • 2012-04-06
  • 2017-10-07
  • 2011-08-06
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多