Проблема в том, что ваше свойство анонимного объекта data-icon
имеет недопустимое имя.Свойства C # не могут содержать тире в своих именах.Есть два способа обойти это:
Использовать подчеркивание вместо тире (MVC автоматически заменит подчеркивание тире в выведенном HTML):
@Html.ActionLink("Edit", "edit", "markets",
new { id = 1 },
new {@class="ui-btn-right", data_icon="gear"})
Использовать перегрузкучто берет в словаре:
@Html.ActionLink("Edit", "edit", "markets",
new { id = 1 },
new Dictionary<string, object> { { "class", "ui-btn-right" }, { "data-icon", "gear" } });