簡體   English   中英

根據星期的ASP.NET MVC LINQ獲取特定的表

[英]Get specific table depending on week ASP.NET MVC LINQ

如標題所示。 我正在嘗試根據登錄用戶選擇的星期從數據庫中獲取數據。

我的數據庫表標記具有UserId,Timestamp和StampingType列!

模型:

public partial class StampingModel
{
    [Key]
    [Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }

    [Key]
    [Column(Order = 1)]
    public DateTime Timestamp { get; set; }

    [Required]
    [StringLength(3)]
    public string StampingType { get; set; }

    public virtual User User { get; set; }
}

}

視圖:

@model Aviato.Models.StampingModel <input type="text" id="weekTxtBox"/> <input type="submit" value="Choose" id="weekStampBtn"/>

控制器:

public ActionResult GetWeekStamp(StampingModel model)
    {
        var getWeek = db.Stampings.FirstOrDefault(s => s.Timestamp == model.Timestamp); //This I dont quite know.

        return View();
    }

    public ActionResult Stampings()
    {
        return View();
    }

JavaScript(可選,如果有更簡單的方法,請告訴我):

$("#weekStampBtn").click(function() {

    var weekTxtBox = $("#weekTxtBox").val();

    $.ajax({
        url: "User/GetWeekStamp",
        type: "POST",
        datatype: "json",
        data: {
            weekTxtBox: weekTxtBox
        }
    });

});

我的庫德長什么樣? 特別是我的LINQ / Lambda表達式...

實現一種方法,可以為您提供一年中的星期幾:

private int GetWeekOfYear(DateTime d)
        {
            var cal = System.Globalization.DateTimeFormatInfo.CurrentInfo.Calendar;
            return cal.GetWeekOfYear(new DateTime(d.Year, d.Month, 1), System.Globalization.CalendarWeekRule.FirstDay, System.DayOfWeek.Sunday);
        }

然后將您的代碼更改為:

var getWeek = db.Stampings.FirstOrDefault(s => GetWeekOfYear(s.Timestamp) == GetWeekOfYear(model.Timestamp)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM