Чтобы ответить на ваш главный вопрос, причина того, что ваш первый якорь работает, заключается в том, что аргументы верны.Например:
<a asp-controller="Dictionary" asp-action="Edit" asp-route-wordId="1">Your link</a>
эквивалентно:
<a href="/Dictionary/Edit/1"></a>
Это работает!
Второе не будет работать, потому что вы неправильно используете Url.Action
, метод, который вы используете, это Url.Action("Action")
Url.Action("Edit/" + Model) or Url.Action("Edit/1")
ищет действие с именем: "Edit / 1", который в вашем случае не будет найден.
, поэтому во втором неработающем примере
<a href="@Url.Action("Edit/" + Model)">Your Link</a>
эквивалентен:
<a href="null" />
В вашем случае вы должны использовать это в своем якоре:
Url.Action("Edit", "Dictionary", new { id = @Model })
эквивалентно / Dictionary / Edit / 1
так:
<a href="@Url.Action("Edit", "Dictionary", new { id = Model })">Your link</a>