F-ES Sitecore
@Html.ActionLink(items.name, "Details", "Home", new { id = items.id }, null)
Вам нужно только " @ " продолжить что-то, когда вы хотите записать результат этого в html. Поэтому он нужен перед Html.ActionLink, но не с параметрами, поскольку вы передаете их как значения, а не записываете их непосредственно в html.
При передаче атрибутов вы используете так называемый анонимный тип (новый оператор { .. }), который должен иметь формат {propNameA = propValueA, propNameB = propbValueB}. Наконец, вам нужно использовать правильную перегрузку для ActionLink, которая делает то, что вы хотите. Тот, который вы хотите, имеет 5 параметров, последний из которых является любым HTML-атрибутом, который вы хотите получить по ссылке, но нам он не нужен, поэтому мы предоставляем "null" в качестве 5-го параметра. Если вы не предоставили этот ноль, то у вас есть только 4 параметра, и он использует другую перегрузку, где параметры означают разные вещи, и вы не получите то, что хотите. Это странная причуда MVC.
Maniraj.M
Я изменил код таким образом, но все равно получаю ту же ошибку! ;(
HTML.Actionlink панели(@пунктам.наименование, "данные", "дом", новый { ИД = @пунктам.идентификатор}, нуль);
F-ES Sitecore
Проверьте, что ни один из предметов.Имя, ни детали.идентификатор имеет значение null. Вы также все еще используете "@", когда вам это не нужно.
Maniraj.M
я изменил код, чтобы ,
if (! string.IsNullOrEmpty(items.name))
{
@формат HTML.Actionlink панели(товары.наименование, "данные", "дом", новый { идентификатор = элементы.идентификатор}, нуль)
}
теперь он работает нормально. Большое спасибо!