Я стажер, в настоящее время изучаю .NET. Я запускаю веб-приложение mvc в VS17, которое отображает виджеты в пользовательском интерфейсе, и у меня возникают проблемы с отображением данных приложения (взятых из базы данных) в моем пользовательском интерфейсе. Моя целевая версия для моего проекта - .NET Framework 4.6.2. Другие приложения, которые я использую, включают nhibernate и ext.net.
Я знаю, что мои данные передаются, потому что я вижу, как данные передаются в data [], когда я отлаживаю их. Есть ли причина, по которой при использовании Html.X.GridPanel или любого расширения html ничего не отображается? HTML-код распознается, но сетка не отображается.
Любая помощь приветствуется, я занимаюсь этим уже несколько недель.
Я проверил web.config в папке views, чтобы убедиться, что все правильно.
https://imgur.com/a/QdnsaTq
cshtml
@model Vizor.Models.Load.VisionCameras
@using BackupDataMiner.Domain;
@Html.X().ResourceManager().RenderScripts(ResourceLocationType.None).RenderStyles(ResourceLocationType.None)
@using System.Text;
@using System;
<link type="text/css" rel="stylesheet" href="/extjs/resources/css/ext-all-gray-embedded-css/ext.axd?v=25767" />
<link type="text/css" rel="stylesheet" href="/extnet/resources/extnet-all-embedded-css/ext.axd?v=25767" />
<script type="text/javascript" src="/extjs/ext-all-js/ext.axd?v=25767"></script>
<script type="text/javascript" src="/extnet/extnet-all-js/ext.axd?v=25767"></script>
@{
if (Model.vCams.Count > 0)
{
object[] data = new object[Model.vCams.Count];
for (int i = 0; i < Model.vCams.Count; i++)
{
BackupDataMiner.Domain.VisionCamera s = Model.vCams[i];
string attName = "";
data[i] = new object[] { s.Model, s.Firmware };
}
@(Html.X().GridPanel()
.BodyStyle("border:0")
.ID(Guid.NewGuid().ToString())
.ForceFit(true)
.CellCls("minerlog")
.Scroll(ScrollMode.Vertical).BottomBar(bar => bar.Add(Html.X().PagingToolbar()
.DisplayInfo(true).HideRefresh(true)
.DisplayMsg("Displaying Machines {0} - {1} of {2}")))
.Store(
Html.X().Store().Model(
Html.X().Model().Fields(
new ModelField("Model"),
new ModelField("Firmware"))).DataSource(data).RemoteSort(false).IsPagingStore(true).RemotePaging(true).PageSize(17)
).ColumnModel(
Html.X().Column().Text("Model").DataIndex("Model"),
Html.X().Column().Text("Firmware").DataIndex("Firmware")
)
);
}
else
{
<div>No Vision Cameras Installed on this Machine, or the backup format is old.</div>
}
}
Контроллер
public class LoadController : Controller
{
public ActionResult VisionCameras(int MachineID)
{
Models.Load.VisionCameras model
= new Models.Load.VisionCameras(MachineID);
return View(model);
}
}
модель
public class VisionCameras
{
private static ILog _logger;
private static ILog Logger
{
get
{
return _logger
?? (_logger = LogManager.GetLogger(typeof(VisionCameras)));
}
}
public IList<bdm.VisionCamera> vCams = new List<bdm.VisionCamera>();
public VisionCameras(int MachineID)
{
try
{
bdm.Machine Machine = DBHandler.Session().Get<bdm.Machine>(MachineID);
IList<BackupDataMiner.Domain.Backup> backups = Machine.Backups.OrderByDescending<BackupDataMiner.Domain.Backup, DateTime>
(x => x.BackupDate).ToList<BackupDataMiner.Domain.Backup>();
bdm.Backup backup = backups.First(x => x.ArchiveName.StartsWith("InVision"));
vCams = backup.VisionCamera;
}
catch (Exception e)
{
Logger.Debug(e.Message);
}
Logger.Debug("number of Vision cameras: " + vCams.Count);
}
}
}
web.config в представлениях
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="extnet" type="Ext.Net.GlobalConfig" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.6.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Ext.Net" />
<add namespace="Ext.Net.MVC" />
</namespaces>
</pages>
</system.web.webPages.razor>