[英]Default value in mvc model using data annotation
是否可以使用數據注釋為 int 屬性添加默認值
就像是
[DefaultValue=1]
public int MyId {get; set;}
試試這個 - 在構造函數中設置默認值:
public class YOURMODEL
{
public int MyId { get; set; }
public YOURMODEL()
{
MyId = 1;
}
}
其他用戶后來添加:從 C# 6.0 (2015) 開始,允許使用這種更簡單的語法:
public class YOURMODEL
{
public int MyId { get; set; } = 1;
}
使用[DefaultValue(false)]
。
( 參考)
構造函數方法當然是正確的(根據@Nilesh),但此解決方案並未解決您可能已在數據庫中創建的任何遺留數據。
您還可以通過生成遷移然后調整 AddColumn 方法來更新舊數據...
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false));
更改為:
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false, defaultValue: 1));
請注意,這還將創建一個數據庫觸發器,該觸發器將自動更新 INSERT 上的默認值,因此從數據庫的角度來看,您在技術上不需要構造函數方法,但使用構造函數設置值仍然是最佳實踐。
您只能使用類的構造函數來執行此操作。 因此,您的代碼應如下所示:
public class MyModel
{
public MyModel()
{
MyId = 1;
}
public int MyId {get; set;}
}
每當創建類的新實例時,這將導致MyId
屬性設置為1
。 但是,如果模型綁定檢測到用戶為MyId
指定了一個值,它將用用戶指定的值覆蓋默認值。
using System.ComponentModel;
namespace EMS.Models
{
public class Admission
{
[DefaultValue(false)]
public Boolean LCStatus { get; set; }
[DefaultValue("India")]
public string Country{ get; set; }
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.