views:

90

answers:

1

This is probably something silly I'm missing but I'm definitely lost. I'm using .NET 4 RC and VS 2010. This is also my first attempt to use UpdateModel in .NET 4, but every time I call it, I get an exception saying Value cannont be null or empty. I've got a simple ViewModel called LogOnModel:

[MetadataType(typeof(LogOnModelMD))]
public class LogOnModel
{
    public string Username { get; set; }
    public string Password { get; set; }

    public class LogOnModelMD
    {
        [StringLength(3), Required]
        public object Username { get; set; }
        [StringLength(3), Required]
        public object Password { get; set; }
    }
}

My view uses the new strongly typed helpers in MVC2 to generate a textbox for username and one for the password. When I look at FormCollection in my controller method, I see values for both coming through.

And last but not least, here's are post controller methods:

    // POST: /LogOn/
    [HttpPost]
    public ActionResult Index(FormCollection form)
    {
        var lm = new LogOnModel();

        UpdateModel(lm, form);

        var aservice = new AuthenticationService();

        if (!aservice.AuthenticateLocal(lm.Username, lm.Password))
        {
            ModelState.AddModelError("User", "The username or password submitted is invalid, please try again.");
            return View(lm);
        }

        return Redirect("~/Home");
    }

Can someone please lend some insight into why UpdateModel would be throwing this exception? Thanks!

A: 

Known issue with early previews of MVC 2. This was fixed for MVC 2 RTM. You can download MVC 2 RTM from http://www.asp.net/mvc/. Information on how to jury-rig this installation into VS2010 RC can be found at http://haacked.com/archive/2010/02/10/installing-asp-net-mvc-2-rc-2-on-visual-studio.aspx.

Levi
Thanks! That was what I was looking for.
James Alexander