Я пытаюсь установить столбец gridview в качестве столбца ссылок, но при передаче значений из модели представления они не отображаются. Я не уверен, где я ошибся. Пожалуйста, помогите мне с этим вопросом. Спасибо!
ViewModel
public class ViewModelBase
{
//Current user data
public string Id { get; set; }
public string UserName { get; set; }
public string Name { get; set; }
//Report data
public string ReportName { get; set; }
public string Brand { get; set; }
public string FileName { get; set; }
public string FilePath { get; set; }
public virtual List<Report> Reports { get; set; }
}
public class ReportViewModel : ViewModelBase
{
}
public class CurrentUserViewModel : ViewModelBase
{
}
Пользовательские отчеты:
public class ReportRepository
{
public List<Report> CurrentUserReports()
{
FulfillmentContext db = new FulfillmentContext();
var userRepository = new UserRepository();
var currentUser = userRepository.GetCurrentUser();
var allReports = db.Reports;
return (from r in allReports.ToList()
where (r.UserId == currentUser.Id)
orderby r.CreatedOn descending
select r).ToList();
}
}
Контроллер:
public ActionResult Index()
{
var reportRepository = new ReportRepository();
var userRepository = new UserRepository();
var userReports = reportRepository.CurrentUserReports();
var currentUser = userRepository.GetCurrentUser();
var viewModel = new ViewModelBase
{
Reports = userReports,
Name = currentUser.Name,
UserName = currentUser.UserName
};
return View(viewModel);
}
Вид:
@model FulfillmentPortal.ViewModels.ViewModelBase
@{
ViewBag.Title = "Home Page";
Layout = "~/Views/Shared/_Layout.cshtml";
var grid = new WebGrid(Model.Reports, rowsPerPage: 20, canPage: true, canSort: true);
}
<script>pageindicator = 0;</script>
<div>
<div class="sc-home-splash"></div>
<div class="panel panel-primary">
<div class="panel-heading">REPORTS</div>
<div class="panel-body" style="padding-left: 35px;">
@if (Model.Reports.Count() != 0)
{
<div id="grid">
@grid.GetHtml(tableStyle: "grid-table",
headerStyle: "grid-header",
footerStyle: "grid-footer",
alternatingRowStyle: "grid-alter-row",
rowStyle: "grid-row",
mode: WebGridPagerModes.All,
firstText: "<< First",
previousText: "< Prev",
nextText: "Next >",
lastText: "Last >>",
columns: grid.Columns(
grid.Column("ReportName", "Report Name", format: @<a href="~/Content/Report/@Model.FileName">@Model.ReportName</a>),
grid.Column("Brand", "Brand"),
grid.Column("FileName", "File Name"),
grid.Column("CreatedOn", "Date")
))
</div>
}
else
{
<p>No Records Found!</p>
}
</div>
</div>
В этот момент я использую формат: @ Model.FileName и @ Model.ReportName. Значения модели пусты. Пожалуйста, помогите мне найти что-то не так.