使用EF生成模型和我自己的模型

时间:2013-12-02 11:44:04

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-partialview

我有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局部视图。

善良的灵魂请指教吗?

1 个答案:

答案 0 :(得分:1)

我会有一个复杂的Viewmodel“PrinterViewModel”,它具有ExceptionModel和PrinterMapping的属性。

然后控制器将完整的PrinterViewModel传递给视图。

在视图中,您可以通过将部分复杂Viewmodel传递给它们来渲染局部视图。

@Html.Partial("ExceptionMessageView",Model.Exception)