MVC 局部视图
MVC partial view
正在学习 MVC,尽管打下了良好的基础,但对这一点感到困惑。
所以我从一个实体构建了一些 CRUD 脚手架对象。我修改的创建页面包含一些下拉列表。我选择使用局部视图,一切正常!
现在我来到了功能的编辑部分。使用我在创建时使用的相同局部视图,出现以下错误:
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code.
Additional information: The model item passed into the dictionary is of type 'FiveADayMVC2.Models.fad_userFoods', but this dictionary requires a model item of type 'FiveADayMVC2.Models.fad_mealType'.
详情:我的代码在这里失败
@Html.Partial("fad_mealTypeDdlPartial")
它位于名为 edit.cshtml
的视图中。
fad_mealTypeDdlPartial.cshtml
包括
@model FiveADayMVC2.Models.fad_mealType
@Html.DropDownListFor(Model => Model.mealTypeID, ViewBag.mealTypeItems as IEnumerable<SelectListItem>, "Select Meal Type.............")
我的模型看起来是这样的:
public partial class fad_mealType
{
public int mealTypeID { get; set; }
public string mealTypeName { get; set; }
}
正如我所说,它遍历所有代码以使用正确的项目列表填充 ViewBag
。渲染视图时只是失败。一个额外的困惑是我在页面上有另一个食品下拉列表,如果我删除膳食类型 ddl,这将非常有效。此代码在结构上是相同的(但显然引用了相关的食物模型)。任何关于我做错了什么的指导将不胜感激。我意识到它读起来有点混乱,所以你还需要我做什么?
我猜 "edit" 查看 @Html.Partial("fad_mealTypeDdlPartial")
调用已开启,@model
类型为 "userFoods"。
但是您在执行 @Html.Partial("fad_mealTypeDdlPartial")
时没有为视图传递模型。
要么使用Html.Action("SomeActionThatReturnsAPartialWithModel")
,要么在使用@Html.Partial("fad_mealTypeDdlPartial", SOMEMEALTYPEMODEL)
时传入一个模型
@Html.Action()
在您的控制器中运行一个操作,然后可以 return 视图。
正在学习 MVC,尽管打下了良好的基础,但对这一点感到困惑。
所以我从一个实体构建了一些 CRUD 脚手架对象。我修改的创建页面包含一些下拉列表。我选择使用局部视图,一切正常!
现在我来到了功能的编辑部分。使用我在创建时使用的相同局部视图,出现以下错误:
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code.
Additional information: The model item passed into the dictionary is of type 'FiveADayMVC2.Models.fad_userFoods', but this dictionary requires a model item of type 'FiveADayMVC2.Models.fad_mealType'.
详情:我的代码在这里失败
@Html.Partial("fad_mealTypeDdlPartial")
它位于名为 edit.cshtml
的视图中。
fad_mealTypeDdlPartial.cshtml
包括
@model FiveADayMVC2.Models.fad_mealType
@Html.DropDownListFor(Model => Model.mealTypeID, ViewBag.mealTypeItems as IEnumerable<SelectListItem>, "Select Meal Type.............")
我的模型看起来是这样的:
public partial class fad_mealType
{
public int mealTypeID { get; set; }
public string mealTypeName { get; set; }
}
正如我所说,它遍历所有代码以使用正确的项目列表填充 ViewBag
。渲染视图时只是失败。一个额外的困惑是我在页面上有另一个食品下拉列表,如果我删除膳食类型 ddl,这将非常有效。此代码在结构上是相同的(但显然引用了相关的食物模型)。任何关于我做错了什么的指导将不胜感激。我意识到它读起来有点混乱,所以你还需要我做什么?
我猜 "edit" 查看 @Html.Partial("fad_mealTypeDdlPartial")
调用已开启,@model
类型为 "userFoods"。
但是您在执行 @Html.Partial("fad_mealTypeDdlPartial")
时没有为视图传递模型。
要么使用Html.Action("SomeActionThatReturnsAPartialWithModel")
,要么在使用@Html.Partial("fad_mealTypeDdlPartial", SOMEMEALTYPEMODEL)
时传入一个模型
@Html.Action()
在您的控制器中运行一个操作,然后可以 return 视图。