Исключение, вызывающее UpdateModel - значение не может быть нулевым или пустым - PullRequest
0 голосов
/ 08 апреля 2010

Это, наверное, что-то глупое, что я скучаю, но я определенно потерян. Я использую .NET 4 RC и VS 2010. Это также моя первая попытка использовать UpdateModel в .NET 4, но каждый раз, когда я вызываю его, я получаю исключение, в котором значение не может быть нулевым или пустым. У меня есть простая ViewModel под названием 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; }
    }
}

Мое представление использует новые строго типизированные помощники в MVC2 для создания текстового поля для имени пользователя и одного для пароля. Когда я смотрю на FormCollection в моем методе контроллера, я вижу значения для обоих.

И, наконец, что не менее важно, вот методы пост-контроллера:

    // 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");
    }

Может, кто-нибудь подскажет, почему UpdateModel выдает это исключение? Спасибо!

1 Ответ

0 голосов
/ 08 апреля 2010

Известная проблема с ранним предварительным просмотром MVC 2. Это было исправлено для MVC 2 RTM. Вы можете загрузить MVC 2 RTM с http://www.asp.net/mvc/. Информацию о том, как настроить эту установку в VS2010 RC, можно найти на http://haacked.com/archive/2010/02/10/installing-asp-net-mvc-2-rc-2-on-visual-studio.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...