asp.net-mvc – 使用GUID作为ASP.NET MVC数据库中的ID
发布时间:2020-12-16 07:14:33 所属栏目:asp.Net 来源:网络整理
导读:我正在学习ASP.NET MVC.我正在按照 asp.net的基本教程之一进行操作.由于我并不总是按照教程进行操作,因此我决定使用GUID作为标识列而不是整数.一切正常,直到我通过MVC应用程序向数据库添加新记录.当我添加新记录时,它插入了一个空白GUID而不是生成的GUID.以
我正在学习ASP.NET MVC.我正在按照
asp.net的基本教程之一进行操作.由于我并不总是按照教程进行操作,因此我决定使用GUID作为标识列而不是整数.一切正常,直到我通过MVC应用程序向数据库添加新记录.当我添加新记录时,它插入了一个空白GUID而不是生成的GUID.以下是处理插入的代码隐藏段:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Create([Bind(Exclude = "id")]Movie movieToCreate) { try { _entities.AddToMovieSet(movieToCreate); _entities.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } } [Bind(Exclude =“id”)]行’忽略’ID列,因为它是自动生成的.在本教程中,ID是自动递增的,但我认为这是因为它是一个整数.我尝试在此方法中添加一行: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create([Bind(Exclude = "id")]Movie movieToCreate) { try { movieToCreate.id = Guid.NewGuid(); _entities.AddToMovieSet(movieToCreate); _entities.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } } 但是id仍然是一个空的GUID.任何人都可以向我提供一些信息,说明为什么会这样,也许如何解决它? 解决方法
您可以使用自定义ModelBinder.我了解了那些超过
here的人.
public class MyClassBinder : DefaultModelBinder { protected override object CreateModel(ControllerContext controllerContext,ModelBindingContext bindingContext,Type modelType) { var model = (Movie)base.CreateModel(controllerContext,bindingContext,modelType); model.id = Guid.NewGuid(); return model; } } 你的行动控制器将是: [AcceptVerbs(HttpVerbs.Post)] public ActionResult MyAction(Movie movieToCreate) { // movie should have a new guid in the id _entities.AddToMovieSet(movieToCreate); _entities.SaveChanges(); } 你需要在Global.asax中注册绑定器: protected void Application_Start() { RegisterRoutes(RouteTable.Routes); ModelBinders.Binders.Add(typeof(Movie),new MyClassBinder()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net web api定义案例一
- 获取ASP.Net 2.0 Repeater控件中的当前索引
- ASP.NET和Web Tools 2012.2引用LESS文件
- Visual Studio 2017下ASP.NET CORE的TagHelper智能提示解决
- asp.net – 在machine.config中存储连接字符串vs将它们存储
- asp.net-mvc – 如何在ASP.NET MVC中围绕AreaRegistration.
- asp.net-mvc – 如何获取视图html并返回客户端
- asp.net-mvc-3 – 在MVC3中添加有关打印功能的数据
- asp.net-mvc – MVC – 强类型视图被破坏
- WeihanLi.Npoi 1.13.0 更新日志