ASP.NET MVC2 - пользовательские образцовые примеры редактора связей

Я пытаюсь найти некоторые примеры создания пользовательского образцового редактора связей для уникального обязательного сценария, который я должен обработать, но все статьи, которые я нашел, были для более старых версий MVC, которые больше не релевантны в MVC2. Я ссылался на исходный код DefaultModelBinder, чтобы попытаться получить общее ощущение того, что я должен сделать, но это полностью более сложно, чем мой сценарий, и я испытываю затруднения при изоляции определенной логики, которую я должен реализовать.

Моя цель состоит в том, чтобы взять набор пар Флажка/Текстового поля, и для всех Проверенных пар я хотел бы создать пару ключ/значение значения Флажка и значения связанного Текстового поля. После агрегации этих данных я должен сделать некоторую строковую сериализацию на наборе, таким образом, я могу сохранить его в свойстве строки желаемого Типа модели. Я уже данные, отправляемые от формы в управляемом формате, который позволит мне связывать данный Флажок с определенным Текстовым полем, это - просто вопрос выяснения, как получить все части, где мне нужны они.

Кто-либо знает о некоторых актуальных учебных руководствах, которые могли запустить меня с создания пользовательского образцового редактора связей?

16
задан Nathan Taylor 30 November 2010 в 17:16
поделиться

1 ответ

Я не знаю, почему вы думаете, что со времени 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){
    //...
}

Была ли информация такого рода, которую вы ищете?

12
ответ дан 30 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: