私は現在、基本的な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が原因ユーザーIDの値がnullであることにVSでデバッグ・ツールに応じて、常にfalseです。ただし、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