Member 12658724 Ответов: 1

Словарь параметров содержит значение null запись для параметра 'идентификатор' не допускающий значение null тип System.типа int32' системы 'метод.веб.в MVC.languageedit actionresult(типа int32)


У меня есть метод действия в контроллере CountryController.cs
public ActionResult LanguageEdit(int id)
       {

Кроме того, чтобы перейти к нему,
@Html.ActionLink("Edit", "LanguageEdit", "Country", new { id = item.LanguageId }


Я проверил значение
item.LanguageId

Это 4. Но я получил исключение:
The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult LanguageEdit(Int32)


Почему?

Что я уже пробовал:

Конфигурация моего маршрута такова:
routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
            );

1 Ответов

Рейтинг:
7

Bohdan Stupak

Возможно, вы захотите попробовать

@Html.ActionLink("Edit", "LanguageEdit", "Country", new { id = item.LanguageId }, null)
вместо
Если вы проверите Список перегрузок ActionLink вы увидите, что нет ни одного, который бы содержал текст ссылки, имя действия, имя контроллера и словарь значений маршрута.Но есть один, который принимает эти параметры и словарь атрибутов html