benyblack @ ۲ دي ۱۳۸۹-۱۵:۱۷

MVC dynamic action

 بعضی وقت ها نیاز است که با یک Action بتوانیم انواع ویو و Object رو مدیریت کنیم. فکر می کنم مثال زیر گویاست:
 
[HttpPost]
        public ActionResult Create(BaseContent model) {
            ModelBindingContext md = new ModelBindingContext();
            string assemblyName = typeof(Link).Assembly.FullName;
            string fullTypeName = "DNE.CM.Centers.Data.Virt." + model.Type.UpperFirst();
            var obj = Activator.CreateInstance(assemblyName, fullTypeName);
            Type T = typeof(Link).Assembly.GetType(fullTypeName);
            var center = obj.Unwrap();

            // Bind model
            ModelMetadata modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => center, T);
            md.ModelMetadata = modelMetadata;
            md.ValueProvider = new FormValueProvider(ControllerContext);
            dynamic bindResult = ModelBinders.Binders.DefaultBinder.BindModel(ControllerContext, md);
            bindResult.Save();
            return RedirectToAction("Edit", new { id = bindResult.Id });

        }


 

123|  

 

:نام

:پست الکترونيک

:وب سايت

:پيام