Недопустимый декларатор участника анонимного типа. Члены анонимного типа должны быть объявлены с назначением членов, простым именем или доступом к члену
Я пытаюсь добавить дополнительный атрибут data-icon в ссылку Action, но я получаю сообщение об ошибке ниже:
Недопустимый декларатор участника анонимного типа. Члены анонимного типа должны быть объявлен с назначением члена, простым именем или доступом участника.
Работает:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 },
new { @rel = "external", @id = "btnProfile" })
Исключение:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 },
new { @rel = "external", @id = "btnProfile", @data-icon = "gear" })
Ответы
Ответ 1
ОБНОВЛЕНИЕ: Из комментария Xander выше, используйте data_icon = "gear"
Вы можете использовать IDictionary<string, object>
вместо анонимного объекта для атрибутов HTML:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }
, new Dictionary<string, object>
{
{ "rel", "external" },
{ "id", "btnProfile" },
{ "data-icon", "gear" },
})
Смотрите эту перегрузку: http://msdn.microsoft.com/en-us/library/dd504988.aspx
Помощник, который вы используете, - это просто удобный способ создания словаря, но за кулисами словарь все равно создается.
Ответ 2
Я думаю, что вы используете символ подчеркивания, например data_icon, и он переводит его
Ответ 3
Я просто использую следующие
@using System.Web.Routing
@{
RouteValueDictionary RouteValues = new RouteValueDictionary();
RouteValues["id"] = 11;
RouteValues[Some_Name] = Some_Value; //do this with as many name/value pairs
//as you like
}
@Html.ActionLink("Link Text", "Action", "Controller", RouteValues)
который я узнал от Джона, в этом сообщении.
В основном я использовал это в своих контроллерах для предоставления значений маршрута для методов RedirectToAction()
, но я не понимаю, почему он не должен работать в вашем представлении, вам нужно добавить @using System.Web.Routing;
хотя.