Posts Tagged ‘mvc’

TryUpdateModel and unknown model-types

Thursday, May 20th, 2010

TryUpdateModel does not work on types not known at compile time. For example when creating an object through the Activator.CreateInstance()

To remedy this use this snippet of code:

public static class ControllerHelpers
{
  public static bool TryUpdateGenericModel(this Controller controller, object model)
  {
    var param = new Type[] { model.GetType() };
    var controllerType = controller.GetType();
    var controllerMethods = controllerType.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance);
    var TUMmethod = controllerMethods.First(x => x.Name.StartsWith("TryUpdateModel") && x.GetParameters().Count() == 1);
    var TUMgeneric = TUMmethod.MakeGenericMethod(param);
    var result = TUMgeneric.Invoke(controller, new object[] { model });
    return (bool)result;
  }
}

And in your controller when trying to update your model, use it like this:

var emptyModelObject = Activator.CreateInstance(modelType); // whichever way you get it doesn't really matter.
var result = this.TryUpdateGenericModel(modelObject);

Sig goddag til Pirat TV

Tuesday, September 1st, 2009

Efter 4-5 måneders udvikling lancerer vi i dag stolt Pirat TV. I virkeligheden lancerede vi allerede for et par måneder siden, men det var lidt i smug. I dag er den store dag med officiel lancering og alt hvad dertil hører.

Kort fortalt er Pirat TV Ungdomsredaktionens bud på en netbaseret platform for moderne og fremtidigt ungdoms-tv. Vi har droppet at sende på DR1 (vi fik alligevel kun skodsendetider) og koncentrerer os nu om at lave internetvenlige, klipformaterede ting, i troen på at unge fortsat vil rykke mere og mere over på net fra tv.

Bag den overvejende flash-baserede frontend gemmer sig en ASP.NET MVC-applikation som er forberedt til også at servere andre ting end blot Pirat TV. Så vi er klar til WORLD DOMINATION!

Det er vores første  MVC-applikation. MVC er ikke the framework to rule them all – personligt savner jeg mange ting der er til stede i andre web frameworks – men vi kan vist roligt sige: NØJ, hvor er det en befrielse fremfor at arbejde med det retarderede Web Forms fra ASP.NET.

På alle klipsider har vi – ligesom man kender fra fx. YouTube – en embed-kode liggende som man kan tage og putte ind på sit eget site. Vi er et par steder (1, 2) blevet hånet for vores “fortolkning” af embed. Og det er delvist fair. For resultatet af embed-koden er blot at der kommer et Pirat TV-logo, en thumbnail fra klippet og klippets titel med et link tilbage til klippet på Pirat TV.

Men kritikken er også lidt unfair. For vi har ikke gjort som vi har gjort fordi vi er inkompetente. Vi kunne sagtens lave rigtig embedding. Men desværre har vi på nuværende tidspunkt ikke rettighederne til at embedde vores indhold eksternt (selvom vi her på redaktionen rigtigt gerne ville). DR tør – modsat YouTube og andre – ikke køre efter princippet “hellere tilgivelse end tilladelse”. Så der er lige nogle jurasoldater der skal udkæmpe en vigtig krig før vi kan få lov.

Til gengæld er vores embedkode forberedt til at embedde rigtig video den dag vi får lov. Så hermed en opfordring til alle om at bruge embedkoden allerede fra i dag af. Så dukker der flot video op på jeres sites den dag rettighederne er på plads.