我一直试图改变SHead
的值,如果它等于
query
但我检查了运行时间,public ViewResult Index()
{
IQueryable<ServiceRequestViewModel> query;
query = from c in context.ServiceRequests
select new ServiceRequestViewModel
{
ServiceRequestId = c.ServiceRequestId,
ServiceDescription = c.ServiceDescription,
RequestNumber = c.RequestNumber,
Title = c.Title,
RouteAttr = c.RouteAttr,
LogAttr = c.LogAttr
};
foreach (var item in query)
{
if (item.RouteAttr.RoutedForRole == WorkflowRole.SHead)
{
item.RouteAttr.RoutedForRole = WorkflowRole.HRManager;
}
}
return View(query);
}
没有更改,即使它进入foreach循环并且有有效条目。我也尝试在视图中添加foreach循环,但它没有改变任何东西。
@Html.Grid(Model).Columns(col =>
{
col.Add(o => o.ServiceRequestId)
.Encoded(false)
.Sanitized(false)
.Filterable(true)
.Titled("SRF No.")
.SetWidth(150)
.RenderValueAs(o => Html.ActionLink(o.RequestNumber, "Details", new { id = o.ServiceRequestId }));
col.Add(o => o.Title)
.Filterable(true)
.SetWidth(400)
.Titled("Title");
col.Add(o => o.LogAttr.CreatedBy)
.Filterable(true)
.Titled("Requestor");
col.Add(o => o.RouteAttr.RoutedForRole)
.Filterable(true)
.Titled("Status");
}).WithPaging(10).Sortable(true)
以下是我的网格视图。
iqueryable
我在评论中被告知为什么它没有返回所以现在我想知道如何更新{{1}}中的项目并将其返回到视图中。
答案 0 :(得分:1)
就像@Enigmativity在评论中所说的那样,我将查询更改为数组。
var data = query.ToArray();
他建议我返回data
但由于ServiceRequestViewModel
需要IQueryable
类型,因此无效。所以我将其更改回IQueryable
类型,以便我可以将其返回查看。
var queryable = data.AsQueryable();