使用TempData在MVC中显示消息
问题描述:
我想在asp.net mvc中显示消息。为此,我创建了一个局部视图。此部分视图的名称是_feedback。在这部分视图的主体中,我编写了这些代码。使用TempData在MVC中显示消息
@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.Prov inceModel',但是这个字典需要一个'MyProject.SharedTools.OperationStatus'类型的模型项。
答
确保你通过你的部分期待的正确型号:
@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"]
您在View中定义OperationStatus模型,但在控制器中您尝试传递ProvinceModel模型。 – 2013-02-22 09:10:40