Saltar al contenido

MVC: el diccionario de parámetros contiene una entrada nula para el parámetro ‘k’ de tipo no anulable ‘System.Int32’

Solución:

Parece que está utilizando la ruta predeterminada que se define como esta:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

La parte clave de esa ruta es la {id} pieza. Si observa su método de acción, su parámetro es k en lugar de id. Debe cambiar su método de acción a esto para que coincida con el parámetro de ruta:

// change int k to int id
public ActionResult DetailsData(int id)

Si quisiera dejar su parámetro como k, entonces cambiaría la URL para que sea:

http://localhost:7317/Employee/DetailsData?k=4

También parece tener un problema con la cadena de conexión. En su web.config, debe cambiar su cadena de conexión a esta (proporcionada por haim770 en otra respuesta que eliminó):

<connectionStrings>
  <add name="EmployeeContext"
       connectionString="Server=.;Database=mytry;integrated security=True;"
       providerName="System.Data.SqlClient" />
</connectionStrings>

Parece que tu acción necesita k pero ModelBinder no puede encontrarlo (desde el formulario, o solicitar o ver datos o ..) Cambie su acción a esto:

public ActionResult DetailsData(int? k)
    {

        EmployeeContext Ec = new EmployeeContext();
        if (k != null)
        {
           Employee emp = Ec.Employees.Single(X => X.EmpId == k.Value);

           return View(emp);
        }
        return View();
    }

Me enfrenté a este error porque envié la cadena de consulta con un formato incorrecto

http://localhost:56110/user/updateuserinfo?Id=55?Name=Basheer&Phone=(111)%20111-1111
------------------------------------------^----(^)-----------^---...
--------------------------------------------must be &

así que asegúrate de que tu Query String o parámetro pasado en el formato correcto

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *