В настоящее время я работаю над базовым приложением asp.net mvc. Сегодня я обнаружил странную проблему:ModelState недействителен, объект в порядке?
[HttpPost]
[Authorize]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "Url, Homepage, Language, Country, Name")]FeedModel feedModel)
{
feedModel.Id = Guid.NewGuid().ToString();
feedModel.UserId = User.Identity.GetUserId();
Debug.WriteLine(feedModel.UserId);
if (ModelState.IsValid)
{
db.Feeds.Add(feedModel);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(feedModel);
}
Видимо, ModelState.IsValid всегда ложно, согласно отладочных-инструментов в VS из-за величины USERID являющейся нулевым. Однако, используя Debug.WriteLine, файл feedModel.UserId отображается правильно.
Функция получения информации из представления, добавляя значения для Id и UserId.
Это feedModel-класс:
public class FeedModel
{
[Key]
public string Id { get; set; }
[Required]
public string UserId { get; set; }
[Required]
public string Url { get; set; }
[Required]
public string Homepage { get; set; }
[Required]
public string Language { get; set; }
[Required]
public string Country { get; set; }
[Required]
public string Name { get; set; }
}
Что я делаю неправильно с там?
Заранее благодарен!
Вы повторили ошибки состояния модели, чтобы просмотреть, какие из них недействительны? – Fran
Вам необходимо [переоценить модель] (http://stackoverflow.com/questions/6360087/manually-invoking-modelstate-validation) – Jasen