簡體   English   中英

MVC只讀日期時間更新為01/01/0001

[英]mvc readonly datetime updates to 01/01/0001

我正在創建MVC 5.2,似乎無法使DateTime字段為只讀,並且在編輯后無法更新。 我插入一行並將日期設置為當前日期時間。 然后,當我在MVC視圖中編輯該行時,日期時間變為1/1/0001 12:00:00 AM。 編輯行時,我需要怎么做才能顯示日期時間而不更新?

    [Table("Employee")]
public partial class Employee
{
    [Key]
    public int TestID { get; set; }

    [Required]
    [StringLength(50)]
    public string Name { get; set; }

    [ReadOnly(true)]
    [Column(TypeName = "datetime2")]
    public DateTime LastUpdated { get; set; }
}

CREATE TABLE [dbo].[Employee] (
[TestID]      INT           IDENTITY (1, 1) NOT NULL,
[Name]        NVARCHAR (50) NOT NULL,
[LastUpdated] DATETIME2 (7) DEFAULT (getdate()) NOT NULL,
PRIMARY KEY CLUSTERED ([TestID] ASC));

即使您不打算更改數據庫中的值,如果您希望該值在POST請求中持久存在,也需要將其綁定到輸入:

@Html.HiddenFor(m => m.LastUpdated)

希望您不會在視圖中使用EF對象,但是即使那樣,您也可以控制要更新的內容:

var emp = context.Employess.SingleOrDefault(e => e.TestID == model.TestID);
if(emp != null)
{
    emp.Name = model.Name;
    context.SaveChanges();
}

當然,假定context是EF DbContext的實例,而model是參數的名稱:

public ActionResult Edit(Employee model)
{
    /* ... */
}

暫無
暫無

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

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