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