Comment passer un paramètre facultatif dans ActionResult

Cela fonctionne:

public ActionResult Edit(int id, CompPhone cmpPhn)
{
  var vM = new MyViewModel();
  if (cmpPhn != null) { vM.CmpPhnF = cmpPhn; }
  ...
}

Si je fais cmpPhn facultatif:

public ActionResult Edit(int id, CompPhone? cmpPhn)

J'obtiens "Erreur 1 Le type" MyProject.Modèles.CompPhone "doit être un non nullable type de valeur afin de l'utiliser comme paramètre" T " dans le générique du type ou de la méthode 'Système.Nullable'.

Comment puis-je faire de ce paramètre d'entrée pour la méthode optionnelle?

Voici le modèle de vue

public class MyViewModel : IValidatableObject
{
...
public CompPhone CmpPhnF { get; set; }    
...
}

Appelant la méthode

[HttpPost, ValidateAntiForgeryToken]
public ActionResult PhoneTest(MyViewModel vM)
{
  if (ModelState.IsValid)
  { var cmpPhn = vM.CmpPhnF;
  return RedirectToAction("Edit", new { id = vM.AcntId, cmpPhn });
  }
  ...
}
InformationsquelleAutor Joe | 2012-09-18