如何从MVC.net中的MongoDB传递ObjectId [英] How to pass ObjectId from MongoDB in MVC.net
本文介绍了如何从MVC.net中的MongoDB传递ObjectId的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在与Mongo,NoRM和MVC .Net开始一个新项目.
I'm starting a new project with Mongo, NoRM and MVC .Net.
在我使用FluentNHibernate之前,我的ID是整数,现在我的ID是ObjectId.因此,当我具有编辑"链接时,我的URL如下所示:
Before I was using FluentNHibernate so my IDs were integer, now my IDs are ObjectId. So when I have an Edit link my URL looks like this :
WebSite/Admin/Edit/23,111,160,3,240,200,191,56,25,0,0,0
WebSite/Admin/Edit/23,111,160,3,240,200,191,56,25,0,0,0
并且它不会作为ObjectId自动绑定到我的控制器
And it does not bind automaticly to my controller as an ObjectId
您对此有什么建议/最佳实践吗?我是否需要每次都对ID进行编码/解码?
Do you have any suggestions/best practices to work with this? Do I need to encode/decode the ID everytime?
谢谢!
推荐答案
我使用以下
public class ObjectIdModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
string value = controllerContext.RouteData.Values[bindingContext.ModelName] as string;
if (String.IsNullOrEmpty(value)) {
return ObjectId.Empty;
}
return new ObjectId(value);
}
}
和
protected void Application_Start()
{
......
ModelBinders.Binders.Add(typeof(ObjectId), new ObjectIdModelBinder());
}
几乎忘记了,从ObjectId.ToString()
这篇关于如何从MVC.net中的MongoDB传递ObjectId的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文