使用在很多地方我看到Nullable Int
作爲參數控制器動作。我從SO研究中知道我應該把Model Propetry as Nullable and Required
。它有助於防止Underposting
攻擊,並且還可以幫助我們避免在UI窗體中看到屬性的「默認值」,例如datetime屬性。我什麼時候使用可空INT在我的控制器動作,什麼是它在asp.net mvc的5
[Required]
public DateTime? dateTime {get;set;}
隨着上面的設置,我現在不會看到默認的日期。到現在爲止還挺好。但是使用「?」的意義是什麼?在ControllerAction中?我什麼時候可以使用它。
目前,我有一個刪除的功能,我已經寫了下面的代碼
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int? resumeId)
{
var r = _context
.Resumes
.Where(c => c.ResumeId == resumeId).SingleOrDefault();
_context.Resumes.Remove(r);
_context.SaveChanges();
return RedirectToAction("ResumeCenter");
}
有人能指導我什麼時候需要使用的「?」這意義重大?我讀了這個Nullable Int鏈接,但我無法理解。請給我一個兩個用法的例子。
根本沒有意義,因爲你的方法需要'resumeId'的值(如果它是'null',那麼什麼都不會被刪除)。將參數更改爲「int resumeId」。 –
@StephenMuecke:你能不能告訴我一個真實世界的場景,我應該在哪裏使用它,我應該在哪裏避免它? – Unbreakable
'resumeId'是一個用於查詢數據庫的操作參數。如果此參數可以爲空,則需要檢查傳遞給它的空值。使用不可爲空的int可能是明智的,因爲刪除操作需要一個ID來找到應刪除的相應記錄。 –