当前位置: 首页 > 编程语言 > C#

参数字典包含非可空类型’System.Int32’的参数’id’的空条目分享

时间:2023-04-10 13:06:36 C#

C#学习教程:参数字典包含一个非可空类型“System.Int32”的参数“id”的空条目Int32'构建我的第一个MVC应用程序,我在数据库中有一个包含3列的表:Id→PrimaryKeyUsernamePassword当我单击编辑链接编辑记录时,它抛出以下异常:Parameterdictionarycontainsnon-nullableEmpty“MvcApplication1.Controllers.UserController”中方法“System.Web.Mvc.ActionResultEdit(Int32)”的“System.Int32”类型参数“id”的条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数这是我的编辑代码:publicActionResultEdit(intid,Usercollection){UserDBMLDataContextdb=newUserDBMLDataContext();varq=fromabcindb.User_Login_Detailswhereabc.Id==idselectabc;IListlst=q.ToList();User_Login_DetailsuserLook=(User_Login_Details)lst[0];userLook.Username=collection.UserName;userLook.Password=collection.Password;db.SubmitChanges();返回RedirectToAction("索引");您希望URL中有一个id参数,但您没有提供。例如:http://yoursite.com/controller/edit/12^^missing在您的WebApiConfig>>Register()中,您必须更改为config.Routes.MapHttpRoute(name:"DefaultApi",routeTemplate:"api/{controller}/{action}/{id}",defaults:new{id=RouteParameter.Optional}这里是添加了{action}的routeTemplate这个错误的意思是MVC框架找不到你作为参数传递的id属性的值到Edit方法.MVC在路由数据,查询字符串和表单值等地方搜索这些值。例如,下面将在您的查询字符串中传递id属性:/Edit?id=1更好的方法是编辑路由配置,以便您可以将此值作为URL本身的一部分传递:/Edit/1MVC搜索参数值的过程称为模型绑定,它是MVC最好的功能之一。您可以找到在这里了解更多关于模型绑定的更多信息。表单上的操作方法是否指向/controller/edit/1?尝试使用以下之一://最后位置的null是html属性,您通常不会在表单上使用//。这些调用有点难看id=Model.Id})或在@Html.HiddenFor(m=>m.Id)表单中添加一个隐藏的“Id”字段您会收到该错误,因为ASP.NETMVC无法找到要提供的id参数值id参数的动作方法。您需要将其作为URL的一部分(“/Home/Edit/123”)、查询字符串参数(“/Home/Edit?id=123”)或POSTed参数(确保具有类似的HTML表单。或者,您可以将id参数设置为可为null的int(Edit(int?id,Usercollection){...}),但如果id为null,您将不知道要编辑什么。以防万一这可以帮助其他任何人;如果您将“视图”作为“打开”选项卡(取决于参数),则VisualStudio中可能会发生此错误。关闭当前视图并启动您的应用程序,应用程序将“正常”启动;如果您打开一个视图,VisualStudio将解释它,因为你想运行当前视图。只需将你的代码行更改为Edit从你调用此函数的地方将传递我有相同的corectid,但对我来说问题是我是用错误的GUID执行请求的,最后2个字符漏掉了以上是C#学习教程:参数字典包含一个参数'idofnon-nullabletype'System.Int32'如果空共享的内容'的入口对你有用,需要了解更多C#学习教程,希望大家多多关注—360476f3-a4c8-4e1c-96d7-3c451c6c86360476f3-a4c8-4e1c-96d7-3c451c6c865e本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: