C# ASP.NET MVC4无法按日期时间列对webgrid进行排序

C# ASP.NET MVC4无法按日期时间列对webgrid进行排序,c#,asp.net-mvc-4,sorting,razor,webgrid,C#,Asp.net Mvc 4,Sorting,Razor,Webgrid,在我的应用程序中,我将webgrid定义为: @model IEnumerable<ConnectManager2Test.Models.JobIterationViewModel> @{ ViewBag.Title = "Unscheduled Jobs list"; var webGrid = new WebGrid(Model, rowsPerPage: 12, canSort: true, canPage: true, ajaxUpdateContainerId: "gri

在我的应用程序中,我将webgrid定义为:

@model IEnumerable<ConnectManager2Test.Models.JobIterationViewModel>
@{
ViewBag.Title = "Unscheduled Jobs list";

var webGrid = new WebGrid(Model, rowsPerPage: 12, canSort: true, canPage: true, ajaxUpdateContainerId: "gridholder", ajaxUpdateCallback: "loadDataGrid");
webGrid.Pager(WebGridPagerModes.NextPrevious);
}

<h2 class = "table-striped-header">Unscheduled Jobs</h2>
<div id="gridholder">
@using (Html.BeginForm(null, null, FormMethod.Post, new { @id = "webgridForm" })) 
{
@webGrid.GetHtml(tableStyle: "table table-hover", columns: new[]{
    webGrid.Column(header:"Job Number", columnName:"Jobnumber", format:@<a onclick="joblookup(@item.jobid)">@item.Jobnumber</a>),
    webGrid.Column(header:"Job Type", columnName:"Jobtype", format:@<div>@item.JobType</div>),
    webGrid.Column(header:"Duration (mins)", columnName:"Duration",format: @<div>@item.Duration</div>),
    webGrid.Column(header:"Target Date", columnName:"TargetDate",format:@<div>@item.Targetdt</div>),
     webGrid.Column(header:"Assigned To", columnName:"Assignedto",format:@<div>@item.Assignedto</div>),
 webGrid.Column(header:"Description", columnName:"Description",format:@<div id = @("jobDetailsCol" + @item.jobid) onclick="detailslookup(@item.jobid)" 
 link = @Url.Action("JobDescription", "JobLists", new { jobId = item.jobid })>
 @item.Description</div>),
 webGrid.Column(header:"Flag", columnName:"Flag",format:@<div>@item.Flag</div>),
 webGrid.Column(header:"Priority", columnName:"Priority",format:@<div>@item.Priority</div>),
 webGrid.Column(header:"Location", columnName:"Location",format:@<div>@item.Location</div>)
    }
                            )}
</div>
控制器是:

public ActionResult UnscheduledJobs(int page = 1, string sort = "", string direction = "asc")
        {
            try
            {
                IEnumerable<Jobiteration> iterationList = CommonJobFuncs.GetAllJobIterations().Where(j => j.Scheduleddt == null && j.Status == JobIterationStatus.active.ToString());


                ViewBag.Sort = sort;
                ViewBag.Direction = direction;              
                return PartialView(iterationList.Select(i => JobIterationViewModelFiller.GetModel(i)).OrderBy(i => i.Targetdt).ToList());
            }
            catch (Exception ex)
            {
                return new MvcDebug().Exception(ex);
            }
        }
public ActionResult非计划作业(int page=1,string sort=“”,string direction=“asc”)
{
尝试
{
IEnumerable iterationList=CommonJobFuncs.GetAllJobIterations()。其中(j=>j.Scheduleddt==null&&j.Status==JobIterationStatus.active.ToString());
ViewBag.Sort=Sort;
视图包。方向=方向;
返回PartialView(iterationList.Select(i=>JobIterationViewModelFiller.GetModel(i)).OrderBy(i=>i.Targetdt.ToList());
}
捕获(例外情况除外)
{
返回新的MvcDebug().Exception(ex);
}
}
问题在于,除了“目标日期”列之外,每一列的排序都是正确的。当我单击目标日期标题时,它会按升序排序,但当我再次单击它时,它不会按降序排序,这与所有其他列不同。
有什么想法吗?感谢

找到了它是什么-在视图中,列名必须与模型中变量的名称匹配。因此,改变这一行:

webGrid.Column(header:"Target Date", columnName:"TargetDate",format:@<div>@item.Targetdt</div>),
webGrid.Column(标题:“目标日期”,列名称:“目标日期”,格式:@@item.Targetdt),

webGrid.Column(标题:“目标日期”,列名:“Targetdt”,格式:@@item.Targetdt),
成功了

webGrid.Column(header:"Target Date", columnName:"TargetDate",format:@<div>@item.Targetdt</div>),
webGrid.Column(header:"Target Date", columnName:"Targetdt",format:@<div>@item.Targetdt</div>),