0

我已经搜索了该问题的许多答案(有人说即使这是一个错误),但我无法弄清楚我的问题在哪里。我已经清理了所有代码,但是当我看到视图时仍然有错误消息。在逐行调试中一切正常。但最终 YSOFD ......

这是我的代码:

控制器

    [HttpPost]
    public ActionResult Insert(FormCollection formCollection)
    {
        ViewBag.Tema = (new tema()).Css;

        //Pega dados do formulário
        foreach (string _formData in formCollection)
        {
            ViewData[_formData] = formCollection[_formData];
        }


        GameViewModel selectJogo = new sjnj.Models.GameViewModel();


            string sqlJogo = "SELECT id,nome FROM Jogo where nome like '%" +            ViewData["formNomeGame"].ToString() + "%' ORDER BY NOME";
            DataTable dtBuscajogo = new DataAccess("mjnj").ExecuteDataTable(sqlJogo);
            selectJogo.selectListajogo = new System.Data.DataTable();
            selectJogo.selectListajogo.Columns.Add("id");
            selectJogo.selectListajogo.Columns.Add("nome");

            selectJogo.selectListajogo.Rows.Add("#", "Selecione...");

            if (dtBuscajogo.Rows.Count > 0)
            {
                for (int i = 0; i < dtBuscajogo.Rows.Count; i++)
                {
                    selectJogo.selectListajogo.Rows.Add(dtBuscajogo.Rows[i]["id"], dtBuscajogo.Rows[i]["nome"]);
                }
            }
            else
            {
                ViewBag.MensagemError = "Nenhum jogo encontrado";
            }

    return View("Insert",selectJogo);

模型——请注意,我已经评论了所有内容

namespace sjnj.Models
{
public class GameViewModel
{
    #region Inserir
    //[Display(Name = "Adcionar jogo a sua coleção")]
    //public string lblAdcionarJogo { get; set; }
    //[Display(Name = "Digite o nome do jogo")]
    //public string lblDigiteJogo { get; set; }
    //[Display(Name = "Selecione o jogo")]
    //public string lblSelecioneJogo { get; set; }

    //[Display(Name = "descrição do jogo selecionado")]
    //public string descrJogoSelecionado { get; set; }
    //[Display(Name = "Jogo Selecionado")]
    //public string nomeJogoSelecionado { get; set; }

   // [Display(Name = "Saiba mais")]
   //public string saibaMaisSele { get; set; }

   //[Display(Name = "Jogo digitado pelo usuario")]
   //public string formNomeGame  { get; set; }

    //[Display(Name = "Lista dos jogos")]
   // public DataTable selectListajogo { get; set; }
    #endregion
}
}

我的观点

@model sjnj.Models.GameViewModel

@{
    Layout = "~/Views/Shared/_Home.cshtml";
}

这就是我唯一给出错误的观点。只有当我声明视图来填充数据时。

编辑:显式错误

传入字典的模型项的类型为“sjnj.Models.RegisterViewModel”,但此字典需要类型为“sjnj.Models.HomeViewModel”的模型项。

4

1 回答 1

0

我得到了错误。

我的 MasterPage 也使用了模型。当我调用母版页(布局)时,它使用模型然后调用视图而另一个模型搞砸了(我不知道到底发生了什么。

所以解决方案是为母版页的动态部分创建另一个视图,在这种情况下,用户菜单。

我不知道该怎么做,但我知道错误在哪里。

于 2013-02-08T13:03:56.353 回答