2013-09-29 3 views
0

Я пишу приложение с MVC4 и VBNet с использованием Entity Framework. У меня есть две модели, Printer.vb и Request.vbКак создать пользовательские Edit Views MVC?

Они, как показано ниже,

Request.vb

Public Class Request 
     Public Property ID() As Integer 
     Public Property User() As String 
     Public Property Printer() As Printer 
     Public Property Approval() As Boolean 
    End Class 

    Public Class RequestDBContext 
     Inherits DbContext 
     Public Property Requests() As DbSet(Of Request) 
    End Class 

Printer.vb

Public Class Printer 
     Public Property ID() As Integer 
     Public Property Name() As String 
    End Class 

    Public Class PrinterDBContext 
     Inherits DbContext 
     Public Property Printers() As DbSet(Of Printer) 
    End Class 

У меня проблема создания Запросы, ссылающиеся на модель принтера, которая существует в базе данных.

мой взгляд запрос выглядит так,

<div class="editor-field"> 
     @Html.EditorFor(Function(model) model.User) 
     @Html.EditorFor(Function(model) model.Approval) 
     @Html.EditorFor(Function(model) model.Printer) 
     @Html.ValidationMessageFor(Function(model) model.User) 
    </div> 

Но `Model.EditorFor (model.Printer) ничего не создает.

Как добавить поле в представление запроса, которое найдет принтер и ссылается на него в этом запросе?

+0

вы можете добавить шаблон редактор для принтеров –

ответ

1

Вы не можете просто использовать @Html.EditorFor() по типу, который не имеет в наличии рамки MVC.

Рамка уже знает, как обращаться с @Html.EditorFor() для обычных базовых типов, таких как String и int.

Что вам нужно сделать, это следовать учебник как этот blog post, или вы можете просто Google «Редактор пользовательских шаблонов Asp.net MVC»

в основном вы собираетесь создать файл в Views/Shared/EditorTemplates/Printer.vbhtml и скажите MVC, что отображать.

в вашем Printer.vbhtml это будет выглядеть как

@model Printer 

    @Html.Textbox("", Model.ID.GetValueOrDefault()) 
    @Html.Textbox("", Model.Name.GetValueOrDefault())