小编mdk*_*k09的帖子

LINQ按降序排序,底部为空值

我有这个表达式:

troubletickets = db.ServiceTickets.Include(t => t.Company).Include(t => t.UserProfile);
troubletickets.OrderByDescending(t => t.UserProfile != null ? t.UserProfile.FirstName : "ZZZ");
Run Code Online (Sandbox Code Playgroud)

我必须检查UserProfile是否为null,因为如果我不这样做,我将收到错误.问题是,有时UserProfiles.FirstName可以为null.当它为null时,当我按升序和降序排序时,这些值将放在列表的顶部.例如

// Null, Null, Andy, Bill, Chris
// Null, Null, Chris, Bill, Andy
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变这个表达式,这样当我按降序排序时,它会返回类似这样的内容:

// Chris, Bill, Andy, Null, Null
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc entity-framework

15
推荐指数
2
解决办法
3万
查看次数

ViewBag SelectList 中的选定值不起作用

我正在尝试在控制器中设置下拉菜单的选定值,并通过 ViewBag 将其传递到我的视图。当我调试时,所有正确的值都被传递到控制器和视图,但是当它实际呈现在页面上时,未设置所选值。

看法

<tr class="form-group">
<th>
    <label for="CompanyID" class="control-label col-md-9">Company</label>
</th>
<td>
    @Html.DropDownList("CompanyID", (IEnumerable<SelectListItem>)ViewBag.CompanyID, "", new { @class = "required-validation" })
    @Html.ValidationMessageFor(model => model.CompanyID)
</td>
Run Code Online (Sandbox Code Playgroud)

控制器

public ActionResult Edit(int? id) {
if (id == null) {
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var sale = db.SalesOpportunities.Find(id);
if (sale == null) {
    return HttpNotFound();
}

ViewBag.CompanyID = new SelectList(db.Companies, "CompanyID", "Name", sale.CompanyID);

var technicians = db.UserProfiles.Select(t => new {
    ID = t.ID,
    Name = t.FirstName + " " + t.LastName,
}).OrderBy(t => …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

1
推荐指数
1
解决办法
4143
查看次数

标签 统计

asp.net-mvc ×2

c# ×2

entity-framework ×1

linq ×1