多くの場所で、コントローラの動作はパラメータとしてNullable Int
です。私はSO研究から、Model Propetry as Nullable and Required
を置くべきであることを知っています。 Underposting
攻撃から保護するのに役立ちます。また、これは、UIフォームのプロパティの「デフォルト値」(datetimeプロパティなど)を見逃すのに役立ちます。コントローラアクションでnull可能な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'は、DBに問い合わせるアクションパラメータです。このパラメーターがNULL可能である場合は、渡されたヌル値を検査する必要があります。削除操作は、削除すべきそれぞれのレコードを見つけるためにIDを必要とするため、nullでないintを使用することは賢明かもしれません。 –