我運行的應用程序在此Microsoft Tutorial,當我嘗試在應用程序的輸入框中輸入網址(例如,http://msdn.com
或http://blogs.msdn.com/adonet
教程如圖所示),並點擊提交,我得到以下驗證錯誤:ASP.NET核心教程錯誤「值‘http://msdn.com’是無效的網址
The value 'http://msdn.com' is not valid for Url.
當我調試應用程序,我注意到,在本教程中ModelState.IsValid值下面的代碼顯示爲'假'。這裏缺少什麼以及如何修復?
public IActionResult Create(Blog blog)
{
if(ModelState.IsValid)
{
_context.Blogs.Add(blog);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(blog);
}
注意要點:
- 我使用的是最新的ASP.NET 1.0的核心和VS2015更新3在Windows 8.1
- 在[於2016年6月27日發佈]本教程的Creat.chtml觀點,
<input asp-for="Url" class="form-control" />
最初顯示爲只讀,所以我說TYPE =「文本」屬性存在,並且成爲讀/寫 - 我的應用程序是本教程的精確副本(我沒有複製/粘貼),除了而不是選擇'無身份驗證「我在創建poroject時選擇了」個人用戶帳戶「選項。但是,我認爲,這不應該有任何區別。
UPDATE
我加入var errors = ModelState.Values.SelectMany(v => v.Errors);
略高於if(ModelState.IsValid)
聲明,我看到顯示的error collection
值調試窗口下面,但不能找出錯誤的原因。也許。有人可以幫助:
更新2:
我發現我的錯誤。我在Blog類的public int Url { get; set; }
屬性中使用int數據類型而不是使用字符串。將其更改爲字符串,現在它正在工作。有人可能會幫助圖像中的錯誤所說的話。
「ModelState」中的錯誤說了什麼?您可以查看所有的錯誤的詳細信息 - 這裏是如何:http://stackoverflow.com/questions/1352948/how-to-get-all-errors-from-asp-net-mvc-modelstate – PeteGO
你有'@model EFGetStarted.AspNetCore.NewDb.Models.Blog'在頂部? – prospector
@prospector是的,我確實有這個問題,它也通過intellisense得到了認可。 – nam