我在此Microsoft Tutorial中运行应用,当我尝试在应用的输入框中输入网址时(例如,http://msdn.com
或http://blogs.msdn.com/adonet
,如图所示在教程中)并单击提交我得到以下验证错误:
The value 'http://msdn.com' is not valid for Url.
当我调试应用程序时,我注意到在本教程的以下代码中,ModelState.IsValid值显示为' false'。这里缺少什么以及如何解决?
public IActionResult Create(Blog blog)
{
if(ModelState.IsValid)
{
_context.Blogs.Add(blog);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(blog);
}
注意事项:
<input asp-for="Url" class="form-control" />
最初显示为只读,因此我添加了type =&#34; text&#34;属性在那里它变成了读/写更新
我在var errors = ModelState.Values.SelectMany(v => v.Errors);
语句之上添加了if(ModelState.IsValid)
,我在调试窗口中看到以下内容,显示error collection
的值,但无法找出错误原因。也许。有人可以提供帮助:
更新2 :
我发现了我的错误。我在Blog类的public int Url { get; set; }
属性中使用int数据类型而不是使用字符串。将其更改为字符串,它现在正在工作。有人可能会帮助图像中的错误说明。
答案 0 :(得分:1)
我解决了这个问题。我有一个错误。我在Blog类的属性int
中使用了数据类型public int Url { get; set; }
。将其更改为字符串。然后删除SQL Server中的数据库和项目中相应的迁移文件夹。重新运行包管理器命令Add-Migration MyFirstMigration -context BloggingContext
和Update-Database -context BloggingContext
。它现在正在运作。虽然该应用程序是来自此Microsoft Tutorial的复制/粘贴,但稍后我尝试通过快捷键explained here测试创建属性,但忘记了快捷键将数据类型创建为{{ 1}}。感谢所有可能尝试过帮助的读者。