我有2个型号。第一个是由EF创建的,看起来像:
public partial class PrinterMapping
{
public string MTPrinterID { get; set; }
public string NTPrinterID { get; set; }
public string Active { get; set; }
}
我创建了第二个(与任何数据库表无关),看起来像:
public class ExceptionModel
{
public string ExceptionMessage { get; set; }
public ExceptionModel(string exceptionMessage)
{
ExceptionMessage = exceptionMessage;
}
}
在我的索引和创建视图中,自动传递的模型是PrinterMapping。我希望在保存到PrinterMapping访问的表后以相关方式填充ExceptionModel模型的ExceptionMessage属性。所以在我的Create控制器中,我正在做:
ExceptionModel exModel = new ExceptionModel(message);
其中message参数是一个相关的字符串,如“Printer X already exists”。
我的想法是有一个名为ExceptionMessageView的局部视图,我的ExceptionModel将传递给它,我将显示:
@Html.DisplayFor(model => model.ExceptionMessage)
在我的索引和创建视图中,我将有一行:
@Html.Partial("~/Views/Home/ExceptionMessageView.cshtml")
我过度复杂吗?这无论如何都不起作用,因为我不完全理解如何将填充的ExceptionModel从我的Create Controller传递到ExceptionMessageView局部视图。
善良的灵魂请指教吗?
答案 0 :(得分:1)
我会有一个复杂的Viewmodel“PrinterViewModel”,它具有ExceptionModel和PrinterMapping的属性。
然后控制器将完整的PrinterViewModel传递给视图。
在视图中,您可以通过将部分复杂Viewmodel传递给它们来渲染局部视图。
@Html.Partial("ExceptionMessageView",Model.Exception)