加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC2 – 自定义模型绑定器示例

发布时间:2020-12-16 00:26:16 所属栏目:asp.Net 来源:网络整理
导读:我试图找到一个建立一个自定义模型绑定的示例,用于我需要处理的唯一绑定场景,但是我发现的所有文章都是针对MVC中不再相关的旧版本的MVC。我一直在引用DefaultModelBinder源代码来尝试对我需要做的一般感觉,但它比我的场景更复杂,我无法隔离需要实现的特
我试图找到一个建立一个自定义模型绑定的示例,用于我需要处理的唯一绑定场景,但是我发现的所有文章都是针对MVC中不再相关的旧版本的MVC。我一直在引用DefaultModelBinder源代码来尝试对我需要做的一般感觉,但它比我的场景更复杂,我无法隔离需要实现的特定逻辑。

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

有没有人知道一些最新的教程,可以让我开始构建一个自定义模型绑定器?

解决方法

我不知道为什么你认为MVC 1关于定制模型的粘合剂有很多变化。但是,如果我明白你想做什么,那应该是相当容易的。
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){
    //...
}

那是你正在寻找的那种信息?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读