MVC 部分视图
本文关键字:视图 MVC | 更新日期: 2023-09-27 18:31:58
学习MVC,尽管取得了良好的基础,但对此感到困惑。
所以我从一个实体构建了一些 CRUD 基架对象。我修改了创建页面以包含一些下拉列表。我选择使用部分视图,一切都很好!
现在我来到了功能的编辑部分。使用我在创建中使用的相同分部视图,我得到以下错误:
System.Web.Mvc 中发生了类型为"System.InvalidOperationException"的异常.dll但未在用户代码中处理
其他信息:传递到字典中的模型项类型为"FiveADayMVC2.Models.fad_userFoods",但此字典需要类型为"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,这将完美运行。其代码在结构上是相同的(但显然引用了相关的食物模型)。任何关于我做错了什么的指导将不胜感激。我意识到它读起来有点令人困惑,所以你还需要我做什么?
我猜@Html.Partial("fad_mealTypeDdlPartial")
调用的"编辑"视图,具有@model
类型的"userFoods"。
但是你在没有传入视图模型的情况下做了一个@Html.Partial("fad_mealTypeDdlPartial")
。
使用 Html.Action("SomeActionThatReturnsAPartialWithModel")
或在使用时传入模型@Html.Partial("fad_mealTypeDdlPartial", SOMEMEALTYPEMODEL)
@Html.Action()
控制器中运行一个操作,然后可以返回视图。