我想在asp.net mvc中显示一条消息。为此,我创建了一个局部视图。此部分视图的名称是_feedback。在这个局部视图的正文中,我写了这些代码。
@model MyProject.SharedTools.OperationStatus
@if (Model != null)
{
if (Model.IsSuccess)
{
@:Model.Message;
}
else
{
@:Model.Message;
}
}
我把这段代码放在_layout文件中:
@Html.Partial("_feedback")
当我想看到来自控制器的消息时,使用以下代码:
operationStatus = _provinceRepository.Save();
if (operationStatus.IsSuccess)
{
TempData["OperationStatus"] = operationStatus;
return RedirectToAction("Index");
}
但是我给出了这个错误:
传入字典的模型项的类型为“MyProject.Models.ProvinceModel”,但此字典需要“MyProject.SharedTools.OperationStatus”类型的模型项。
答案 0 :(得分:1)
确保您已经传递了部分期望的正确模型:
@Html.Partial("_feedback", Model.SomePropertyOfTypeOperationStatus)
如果您没有将模型指定为Html.Partial
助手的第二个参数,那么它将自动传递当前视图的模型(在您的情况下为MyProject.Models.ProvinceModel
类型),这就是为什么您收到错误:您的部分期望MyProject.SharedTools.OperationStatus
类型的模型。
同样不清楚在哪里使用存储在控制器内部的部分TempData值。也许它应该是这样的:
@model MyProject.SharedTools.OperationStatus
@if (Model != null)
{
@TempData["OperationStatus"]
}
或者你不是只想在不使用模型的情况下直接显示存储在部分TempData中的值?
@TempData["OperationStatus"]