我目前正在研究一個基本的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調試工具由於用戶ID值是零。但是,使用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