Атрибут HTML `id` конфликтует с соглашением ASP.NET MVC` id` - PullRequest
1 голос
/ 31 марта 2019

Может кто-нибудь, пожалуйста, помогите мне понять, почему этот следующий код:

<div>
    @Html.ActionLink("Back", "Index", new {id="backbtn"})
</div>

внутри Вид отображает следующий HTML-код в браузере:

<a href="/Products/Index/backbtn">Back</a>

вместо следующего желаемого HTML:

<a id="backbtn" href="/Products/Index">Back</a>

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 31 марта 2019

Это потому, что третий параметр метода, которому вы предоставляете id, - это тот, который используется для определения параметров маршрута, а не атрибутов HTML. Вместо этого используйте 4-й параметр и оставьте 3-й как ноль:

@Html.ActionLink("Back", "Index", null, new {id="backbtn"})

См. Документацию для получения подробной информации о том, для чего используется каждый параметр метода.

1 голос
/ 31 марта 2019

Вы используете неправильную перегрузку метода Html.ActionLink.

Вы используете эту перегрузку ActionLink(HtmlHelper, String, String, Object), третий параметр - значения маршрута,нет htmlAttributes.

Вы должны использовать перегрузку ActionLink(HtmlHelper, String, String, Object, Object), здесь третьим параметром являются значения маршрута, но четыре являются htmlAttributes

Так что вы простонеобходимо передать ноль в третий параметр

@Html.ActionLink("Back", "Index", null, new {id="backbtn"})
1 голос
/ 31 марта 2019

это работает для меня более подробно Передача параметра в контроллер из @ Html.ActionLink MVC 4

@Html.ActionLink("Test Link", "SomeAction", "SomeController",null, new {id = "someID" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...