gpt4 book ai didi

asp.net-mvc - ASP.NET MVC2 - 自定义模型绑定(bind)示例

转载 作者:行者123 更新时间:2023-12-03 14:58:04 24 4
gpt4 key购买 nike

我试图找到一些为我需要处理的独特绑定(bind)场景构建自定义模型绑定(bind)器的示例,但我发现的所有文章都是针对 MVC 的旧版本的,它们在 MVC2 中不再相关。我一直在引用 DefaultModelBinder 源代码,试图大致了解我需要做什么,但它比我的场景更复杂,而且我在隔离我需要实现的特定逻辑时遇到了麻烦。

我的目标是收集 Checkbox/Textbox 对的集合,对于所有 Checked 对,我想为 Checkbox 的值和关联的 Textbox 的值创建一个键/值对。聚合这些数据后,我需要对集​​合进行一些字符串序列化,以便将其存储在所需模型类型的字符串属性中。我已经以可管理的格式从表单发送数据,这将允许我将给定的复选框与特定的文本框相关联,这只是弄清楚如何在我需要的地方获取所有部分的问题。

有谁知道一些可以让我开始构建自定义模型绑定(bind)器的最新教程?

最佳答案

我不知道为什么您认为自 MVC 1 以来关于自定义模型绑定(bind)器发生了很大变化。但是,如果我了解您要做什么,那应该很容易。

public class CustomModelBinder : DefaultModelBinder {
public override object BindModel(ControllerContext controllerContext,
ModelBindingContext bindingContext) {

NameValueCollection form = controllerContext.HttpContext.Request.Form;
//get what you need from the form collection

//creata your model
SomeModel myModel = new SomeMode();
myModel.Property = "value";
//or add some model errors if you need to
ModelStateDictionary mState = bindingContext.ModelState;
mState.Add("Property", new ModelState { });
mState.AddModelError("Property", "There's an error.");

return myModel; //return your model
}
}

而你的行动:
public ActionResult Contact([ModelBinder(typeof(CustomModelBinder))]SomeModel m){
//...
}

那是您要查找的信息吗?

关于asp.net-mvc - ASP.NET MVC2 - 自定义模型绑定(bind)示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com