Эта пустая строка для productId
(в вашем маршруте по умолчанию) будет проанализирована платформой с нулевой записью, а поскольку int
не позволяет null
... вы получаете ошибку.
Измените:
public ViewResult Edit(int productId)
на
public ViewResult Edit(int? productId)
, если вы хотите, чтобы вызывающая сторона не передавала идентификатор продукта, как это выглядитвы хотите сделать это в зависимости от того, как настроен ваш маршрут.
Вы также можете перенастроить свой маршрут по умолчанию, чтобы он передавался по некоторым известным значениям по умолчанию, если не указан идентификатор продукта:
routes.MapRoute(
"Admin",
"Admin/{action}/{ productId}",
new { controller = "Admin", action = "Edit", productId= -1 }