У меня есть следующие EF генерироваться модель данных:Доступ к свойствам модели в Razor-4 вид
public partial class PrinterMapping
{
public string MTPrinterID { get; set; }
public string NTPrinterID { get; set; }
public string Active { get; set; }
}
Я тогда следующий вид модели:
public class PrinterViewModel
{
public PrinterMapping PrinterMapping;
public Exceptions Exceptions;
public IEnumerable<PrinterMapping> Printers;
}
В моем действии Индекс в HomeController Я нахожусь передача моей модели представления в представление индекса.
private eFormsEntities db = new eFormsEntities();
public ActionResult Index()
{
PrinterViewModel printerModel = new PrinterViewModel();
printerModel.Printers = from pt in db.PrinterMapping select pt;
return View(printerModel);
}
Мой Индексный звонит частичный вид следующим образом к концу (возможно неправильно):
@Html.Partial("~/Views/Home/GridView.cshtml")
Мои GridView.cshtml выглядит:
@model AccessPrinterMapping.Models.PrinterViewModel
<h2> This is Where the Grid Will Show</h2>
@{
new WebGrid(@model.Printers, "");
}
@grid.GetHtml()
я узнал о методе WebGrid от http://msdn.microsoft.com/en-us/magazine/hh288075.aspx.
Моя линия WebGrid совсем не обрадована, так как она не распознает @model внутри этой строки. Как получить доступ к принтерам в модели просмотра, в которую я прошел? Возможно ли это?
Большое спасибо вам всем.
Благодарю вас всех. Не могли бы вы сообщить мне, что произойдет, если я не передам модель явно частично? Похоже, мне не нужно было в этом случае. Во-вторых, какая разница между @model и Model? – user3041439
@model - это просто объявление типа модели. Модель - это свойство вида с типом, объявленное в объявлении модели @. А также, если вы не передадите модель в частичный вид, свойство Model будет равно null, и вы получите NullReferenceException, когда вы будете использовать свойство Model в представлении GridView.cshtml. –
Спасибо, Dmytro за объяснение. Похоже, что я не получаю исключение NullReferenceException путем NOT, явно передающего модель на частичный вид. Но может быть, это хорошая практика сделать это в любом случае. – user3041439