2016-04-01 4 views
0

У меня возникли проблемы с созданием программы ASP.NET MVC, которая будет случайным образом выбирать ученика и случайным образом выбирать вопрос, и по какой-то причине я не могу заставить его работать в файле .cshtml. Я делаю что-то неправильно? Кроме того, я получаю эту ошибкуASP.Net MVC random, Controllers и views

«Модель элемент передается в словарь типа„QuizProgramMVC.Models.Student“, но этот словарь требует модель элемента типа„QuizProgramMVC.Models.StudentQuestion“.» `Используя QuizProgramMVC.Models;

Контроллер

public class QuizController : Controller 
{ 
    public QuizController TheQuiz { get; set; } 

    // GET: Quiz 
    public ActionResult Index() 
    { 
     StudentQuestion sq = new StudentQuestion(); 

     return View(sq); 
    } 

    public ActionResult QuizProgram() 
    {   
     Student program = new Student(); 

     return View(program); 
    } 

} 

Посмотреть

@model QuizProgramMVC.Models.StudentQuestion 
@using QuizProgramMVC.Models; 

@{ 

    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>QuizProgram</title> 
</head> 
<body> 
    <div> 
     <h1>Quiz Program</h1> 

       <div class="row"> 
        <div class="col-md-6"> 
         <table class="table table-condensed"> 
          <thead> 
           <tr> 
            <th>Question</th> 
            <th>Answer</th> 
           </tr> 
          </thead> 
          <tbody> 
           @foreach (Question q in Model.Questions) 
           { 
            <tr> 
             <td> 
              @q.Quest 
             </td> 
             <td> 
              @q.Answer 
             </td> 
            </tr> 
           } 
          </tbody> 
         </table> 
        </div> 
       </div> 
      <br/> 
       <div class="row"> 
        <div class="col-md-6"> 
         <table class="table table-condensed"> 
          <thead> 
           <tr> 
            <th>First Name</th> 
            <th>Last Name</th> 
           </tr> 
          </thead> 
          <tbody> 
           @foreach (Student s in Model.Students) 
           { 
            <tr> 
             <td> 
              @s.FirstName 
             </td> 
             <td> 
              @s.LastName 
             </td> 
            </tr> 
           } 
          </tbody> 
         </table> 
        </div> 
       </div> 
     <br/> 
     @using (Html.BeginForm()) 
     { 
      <div> 
       Type Answer: <input id="param1" name="param1" type="text" /> 
       <br /> 
       <input type="submit" value="Submit" /> 
      </div> 
     } 
    </div> 
</body> 
</html> 
+2

Не является ли сообщение об ошибке очевидным? Вы передаете другой тип своего действия, чем ожидалось. Вместо объекта «Студент» вам нужно передать объект «StudentQuestion», потому что ваше представление строго типизировано для него. – Shyju

ответ

0

Проблема вы вызываете же вид страницы с другой моделью.

public ActionResult QuizProgram() 
{   
    Student program = new Student();//Here you need to pass the StudentQuestion to the view. 
    return View(program); 
} 

Вызов выше Вид (.cshtml) через QuizProgram() выдает ошибку, потому что в этой странице просмотра вы определили модель как

@model QuizProgramMVC.Models.StudentQuestion 

Это не позволяет другим ViewModels, потому что это строго типизированный Просмотр.

Смежные вопросы