2015-04-27 2 views
1

Я пытаюсь превратить кнопку в ссылку действия, ссылка переводит меня на другую страницу, однако мне нужно отправить new { id = item.Id } на другую страницу, и я не знаю как еще это сделать:Потенциально опасное значение Request.Path было обнаружено ActionLink в кнопке

  @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> 

    } 

Я получаю эту ошибку:

A potentially dangerous Request.Path value was detected from the client (<).

При нажатии на кнопку URL, что он пытался взять меня был:

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

Понятия не имею, почему картина прилагается в конце или HREF, он должен быть:

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

ответ

2

@Html используется для генерации HTML, сопоставительные методы в @Url (как UrlHelper.Action) следует использовать генерирует URLs как href атрибут.

Так, чтобы решить проблему или использовать @Url.Action, если вам необходимо детальный контроль над полученный HTML

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

Или использовать @Html.ActionLink генерировать весь <a> тег:

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

Примечание: обратите внимание, что ActionLink позволяет устанавливать атрибуты в теге 'A' (например, в этом случае« class »), поэтому для оригинального кода не требуется полностью настраиваемый рендеринг. –