这有效:
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’。
如何将此输入参数设置为方法可选?
这是视图模型
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 });
}
...
}