Я пытаюсь найти некоторые примеры создания пользовательского образцового редактора связей для уникального обязательного сценария, который я должен обработать, но все статьи, которые я нашел, были для более старых версий MVC, которые больше не релевантны в MVC2. Я ссылался на исходный код DefaultModelBinder, чтобы попытаться получить общее ощущение того, что я должен сделать, но это полностью более сложно, чем мой сценарий, и я испытываю затруднения при изоляции определенной логики, которую я должен реализовать.
Моя цель состоит в том, чтобы взять набор пар Флажка/Текстового поля, и для всех Проверенных пар я хотел бы создать пару ключ/значение значения Флажка и значения связанного Текстового поля. После агрегации этих данных я должен сделать некоторую строковую сериализацию на наборе, таким образом, я могу сохранить его в свойстве строки желаемого Типа модели. Я уже данные, отправляемые от формы в управляемом формате, который позволит мне связывать данный Флажок с определенным Текстовым полем, это - просто вопрос выяснения, как получить все части, где мне нужны они.
Кто-либо знает о некоторых актуальных учебных руководствах, которые могли запустить меня с создания пользовательского образцового редактора связей?
Я не знаю, почему вы думаете, что со времени 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){
//...
}
Была ли информация такого рода, которую вы ищете?