[英]Dictionary error while passing a class in to a cshtml file
我试图将2个类传递到一个cshtml文件中,并不断出错,但我传递的是“ JavaTutorial.Models.Quiz”类型的模型,但是此字典需要JavaTutorial.Models.Evaluation类型的模型项”。
我不明白,我创建了一个单独的类之后,现在只是尝试传递一个类,但仍然出现错误。
我有一个试图在cshtml中调用的类评估,但是Quiz类不断干扰,但是我不知道为什么。
cshtml:
@model JavaTutorial.Models.Evaluation
<h2>Details</h2>
<h2>Evaluation</h2>
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.Questions)
<input type="submit" />
}
Evaluation.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.ComponentModel.DataAnnotations;
namespace JavaTutorial.Models
{
public class Evaluation
{
public List<Question> Questions { set; get; }
public Evaluation()
{
Questions = new List<Question>();
}
}
}
测验
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.ComponentModel.DataAnnotations;
namespace JavaTutorial.Models
{
public class Quiz
{
[Key]
public int QuizId { get; set; }
public string Title { get; set; }
public int difficulty { get; set; }
public string description { get; set; }
public Genre Genre { get; set; }
}
public class Question
{
public int ID { set; get; }
public string QuestionText { set; get; }
public List<Answer> Answers { set; get; }
[Required]
public string SelectedAnswer { set; get; }
public Question()
{
Answers = new List<Answer>();
}
}
public class Answer
{
public int ID { set; get; }
public string AnswerText { set; get; }
}
/* public class Evaluation
{
public List<Question> Questions { set; get; }
public Evaluation()
{
Questions = new List<Question>();
}
}*/
/*public class ParentView
{
public Quiz Quiz { get; set; }
public Question Question { get; set; }
public Answer Answer { get; set; }
public Evaluation Evaluation{ get; set; }
}
*/
/*
* using (Html.BeginForm())
{
@Html.EditorFor(x => x.Evaluation.Questions)
<input type="submit" />
}*/
}
控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using JavaTutorial.Models;
//using ViewModels;
namespace JavaTutorial.Controllers
{
public class QuizController : Controller
{
//
// GET: /Quiz/
TutorialEntities storeDB = new TutorialEntities();
public ActionResult Details(int id)
{
var quiz = storeDB.Quizzes.Find(id);
return View(quiz);
}
您已在视图中设置模型:
@model JavaTutorial.Models.Evaluation
但您没有通过此模型:
JavaTutorial.Models.Quiz
View需要模型类评估,但您正在通过测验类
如果要通过视图中的测验模型更改,如下所示:
@model JavaTutorial.Models.Quiz
如果要传递两个模型,请在解决方案中的一个名为ViewModels的文件夹中创建一个viewmodel,并将其创建。
public class MyViewModel
{
public List<Question> Questions { set; get; }
public List<Quiz> Quizzes{ set; get; }
public List<Answer> Asnwers { set; get; }
}
ans将视图模型传递到您的视图并按以下方式设置视图:
@model JavaTutorial.ViewModels.MyViewModel
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.