私はその問題について多くの回答を検索しましたが(バグだと言う人もいます)、どこに問題があるのか わかりません。すべてのコードをクリーンアップしましたが、ビューを取得したときにまだエラー メッセージが表示されます。行ごとにデバッグですべてが正常に機能します。でも結局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」のモデル アイテムが必要です。