我正在尝试反序列化 JSON,剪切它不断向我显示此异常:
无法从 System.String 强制转换或转换为 SmartBookLibrary.ViewModel.BookJ1。
描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息:System.ArgumentException:无法从 System.String 强制转换或转换为 SmartBookLibrary.ViewModel.BookJ1。
这是我的 JSON 示例:
{
"authorfamily1": "von Goethe",
"authorname1": "Johann",
"authorsurname1": "Wolfgang",
"title": "Fausto I",
"extension": "epub",
"md5": "58cb1dd438bc6c6027fcda9e7729e5ee",
"isbn": "",
"descr": "",
"cover": "1"
},
{
"authorfamily1": "von Goethe 1",
"authorname1": "Johann",
"authorsurname1": "Wolfgang",
"title": "Fausto I",
"extension": "epub",
"md5": "58cb1dd438bc6c6027fcda9e7729e5ee",
"isbn": "",
"descr": "",
"cover": "1"
}
Run Code Online (Sandbox Code Playgroud)
这是代码:
var json = System.IO.File.ReadAllText("/data1.json");
var courses = JsonConvert.DeserializeObject<Dictionary<string, BookJ1>>(json);
Run Code Online (Sandbox Code Playgroud)
这是我的模型或虚拟机:
public class BookJ1
{
public string title { …Run Code Online (Sandbox Code Playgroud) 在保存到数据库的日期之后,我在控制器中执行另一个Void函数。但有时会显示此错误:
在先前的异步操作完成之前,第二操作在此上下文上开始。使用“ await”来确保在此上下文上调用另一个方法之前,所有异步操作都已完成。不保证任何实例成员都是线程安全的。
...这是我的控制器的示例:
public ActionResult All(Chapter chapter){
var x = db.Post.Where(p => p.PostID == chapter.PostID).FirstOrDefault();
if (x == null){return View(chapter);}
counter++;
db.Chapter.Add(chapter);
db.SaveChangesAsync();
savepost(chapter.PostID, counter);
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
这是Void方法:
public void savepost(int id,int counter)
{
var article = db.Post.Find(id);
article.LastUpdate = DateTime.Now;
article.ChapterCount = counter;
db.Entry(article).State = EntityState.Modified;
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决?