Asp.net mvc 错误:";传递到字典中的模型项为空";在MVC中
获取一个我不理解的错误: “传递到字典中的模型项为空, 但此词典需要“System.Decimal”类型的非空模型项。” 在视图中的此行发生:Asp.net mvc 错误:";传递到字典中的模型项为空";在MVC中,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Razor,获取一个我不理解的错误: “传递到字典中的模型项为空, 但此词典需要“System.Decimal”类型的非空模型项。” 在视图中的此行发生: <td>@Html.EditorFor(model => model.Price)</td> @Html.EditorFor(model=>model.Price) 它应该是空的。这是一个创建产品页面。代码如下: public ActionResult Create() {
<td>@Html.EditorFor(model => model.Price)</td>
@Html.EditorFor(model=>model.Price)
它应该是空的。这是一个创建产品页面。代码如下:
public ActionResult Create()
{
var items = new ProductItems();
return View(items.Products);
VIEW :
@using Nop.Web.Models.Products
@model ProductItems
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<tr>
<td>@Html.EditorFor(model => model.Price) << error here
VIEW MODEL :
public class ProductItems
{
public decimal Price { get; set; }
public IEnumerable<Product> Products { get; set; }
NOTE : I previously changed the View Model. It was :
@model Nop.Core.Domain.Catalog.Product
and it worked before I changed it.
public ActionResult Create()
{
var items=新产品项();
返回视图(项目、产品);
视图:
@使用Nop.Web.Models.Products
@模型产品项
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.EditorFor(model=>model.Price)您没有向视图传递任何内容,而是传递一个空对象,因此它会说model.Price为null。如果您希望填充编辑器模板,则必须说
public ActionResult Create()
{
ProductItems items = new ProductItems();
items.Price = 15.99;
return View(items);
}
由于您正在向视图传递类型为ProductItems
的模型,因此您的视图也必须期望该类型。您应该将模型类放入“模型”文件夹中。在视图中调用的默认值为
@model NameSpace.Models.ProductItems,不确定模型类的路径。您没有向视图传递任何内容,只是传递了一个空对象,因此它会说model.price为null。如果希望填充编辑器模板,您必须说
public ActionResult Create()
{
ProductItems items = new ProductItems();
items.Price = 15.99;
return View(items);
}
@model Nop.Web.Models.ProductItems
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.EditorFor(model => model.Price)
</td>
</tr>
</table>
}
由于您正在向视图传递类型为ProductItems
的模型,因此您的视图也必须期望该类型。您应该将模型类放入“模型”文件夹中。在视图中调用的默认值为
@model NameSpace.Models.ProductItems,不确定模型类的路径。您没有向视图传递任何内容,只是传递了一个空对象,因此它会说model.price为null。如果希望填充编辑器模板,您必须说
public ActionResult Create()
{
ProductItems items = new ProductItems();
items.Price = 15.99;
return View(items);
}
@model Nop.Web.Models.ProductItems
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.EditorFor(model => model.Price)
</td>
</tr>
</table>
}
由于您正在向视图传递类型为ProductItems
的模型,因此您的视图也必须期望该类型。您应该将模型类放入“模型”文件夹中。在视图中调用的默认值为
@model NameSpace.Models.ProductItems,不确定模型类的路径。您没有向视图传递任何内容,只是传递了一个空对象,因此它会说model.price为null。如果希望填充编辑器模板,您必须说
public ActionResult Create()
{
ProductItems items = new ProductItems();
items.Price = 15.99;
return View(items);
}
@model Nop.Web.Models.ProductItems
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.EditorFor(model => model.Price)
</td>
</tr>
</table>
}
由于您正在向视图传递类型为ProductItems
的模型,因此您的视图也必须期望该类型。您应该将模型类放入“模型”文件夹中。在视图中调用的默认值为
@model NameSpace.Models.ProductItems,不确定模型类的路径。@model Nop.Web.Models.ProductItems
@model Nop.Web.Models.ProductItems
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.EditorFor(model => model.Price)
</td>
</tr>
</table>
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@EditorFor(model=>model.Price)
}
我已经使用了您的代码,您的代码在我的处理过程中没有引发错误,但您也使用类似于此视图的代码,并且在第一次清理构建时要小心
@model Nop.Web.Models.ProductItems
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@EditorFor(model=>model.Price)
}
我已经使用了您的代码,您的代码在我的处理过程中没有引发错误,但您也使用类似于此视图的代码,并且在第一次清理构建时要小心
@model Nop.Web.Models.ProductItems
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@EditorFor(model=>model.Price)
}
我已经使用了您的代码,您的代码在我的处理过程中没有引发错误,但您也使用类似于此视图的代码,并且在第一次清理构建时要小心
@model Nop.Web.Models.ProductItems
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@EditorFor(model=>model.Price)
}
我已经使用了您的代码,您的代码在我的处理过程中没有引发错误,但您也使用类似于此视图的代码,并且在第一次清理构建时要小心
谢谢,…你给了我一个提示,当你说“既然你正在传递一个ProductItems类型的视图,你的视图也必须期望该类型。”。所以我改变了:return视图(items.Products);return视图(items);它工作了。(items.Products)的类型是“Product”。整个模型一开始很棘手,但越做越容易出错。谢谢,…你给了我一个提示,当你说“既然你给视图传递的是ProductItems类型的模型,你的视图也必须期望该类型。”。所以我改了:return view(items.Products);return view(items);它成功了。(items.Products)是“Product”类型。这整个模型一开始很复杂,但是越做越容易出错。谢谢,…你给了我一个提示,当你说“既然你给视图传递的是ProductItems类型的模型,你的视图也必须是该类型的。”。所以我改了:return view(items.Products);return view(items);成功了。(items.Products)属于“Product”类型。整个模型一开始很复杂,但越做越容易出错。谢谢,…你给了我一个提示,当你说“既然你要传递视图一个ProductItems类型的模型,你的视图也必须期望该类型。”。所以我改了:return view(items.Products);return view(items)(items.Products)属于“产品”类型。整个模型一开始很复杂,但越做越容易出错。