【发布时间】:2013-02-06 12:40:27
【问题描述】:
我已经针对该问题搜索了许多答案(有人说即使这是一个错误),但我无法弄清楚我的问题在哪里。我已经清理了所有代码,但是当我看到视图时仍然有错误消息。在逐行调试中一切正常。但最终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' 类型的项目。
【问题讨论】:
-
YSOD 何时发生?为插入操作执行 POST 时?
-
是的!当你第一次打开页面时,没关系!
-
尝试关闭调试器选项中属性的隐式评估。如果单步执行程序是成功与失败之间的区别,那么调试器可能会通过调用一段在该时间点通常不会被调用(或根本不会被调用)的代码进行干扰。
-
YSOFD = Yello Screen Of The Death :D
标签: c# asp.net-mvc-4 visual-studio-2012