これは機能します:
public ActionResult Edit(int id, CompPhone cmpPhn)
{
var vM = new MyViewModel();
if (cmpPhn != null) { vM.CmpPhnF = cmpPhn; }
...
}
cmpPhnをオプションにした場合:
public ActionResult Edit(int id, CompPhone? cmpPhn)
「エラー1タイプ'MyProject.Models.CompPhone'は、ジェネリック型またはメソッド'System.Nullable'のパラメーター'T'として使用するために、null許容でない値型である必要があります。
メソッドへのこの入力パラメーターをオプションにするにはどうすればよいですか?
これがビューモデルです
public class MyViewModel : IValidatableObject
{
...
public CompPhone CmpPhnF { get; set; }
...
}
メソッドの呼び出し
[HttpPost, ValidateAntiForgeryToken]
public ActionResult PhoneTest(MyViewModel vM)
{
if (ModelState.IsValid)
{ var cmpPhn = vM.CmpPhnF;
return RedirectToAction("Edit", new { id = vM.AcntId, cmpPhn });
}
...
}