Vin*_*nyG 9 asp.net-mvc mongodb norm
我正在与Mongo,NoRM和MVC .Net开始一个新项目.
在我使用FluentNHibernate之前,我的ID是整数,现在我的ID是ObjectId.因此,当我有一个编辑链接时,我的URL看起来像这样:
网站/管理/编辑/ 23,111,160,3,240,200,191,56,25,0,0,0
并且它不会作为ObjectId自动绑定到我的控制器
你有什么建议/最佳实践可以解决这个问题吗?我是否每次都需要对ID进行编码/解码?
谢谢!
Ian*_*cer 15
使用像这样的自定义模型绑定器... (对付官方C#MongoDB驱动程序)
protected void Application_Start()
{
...
ModelBinders.Binders.Add(typeof(ObjectId), new ObjectIdModelBinder());
}
public class ObjectIdModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var result = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (result == null)
{
return ObjectId.Empty;
}
return ObjectId.Parse((string)result.ConvertTo(typeof(string)));
}
}
Run Code Online (Sandbox Code Playgroud)
She*_*ock 14
我使用以下
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);
}
}
Run Code Online (Sandbox Code Playgroud)
和
protected void Application_Start()
{
......
ModelBinders.Binders.Add(typeof(ObjectId), new ObjectIdModelBinder());
}
Run Code Online (Sandbox Code Playgroud)
差点忘了,从中制作网址 ObjectId.ToString()
| 归档时间: |
|
| 查看次数: |
3401 次 |
| 最近记录: |