Это, наверное, что-то глупое, что я скучаю, но я определенно потерян. Я использую .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 выдает это исключение? Спасибо!