这是有效的:
如果我将cmpPhn设为可选项:
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:在泛型类型或方法'System.Nullable'中使用参数'T'时,类型'MyProject.Models.CompPhone' 必须是非空值类型。"
请问我该如何将这个输入参数设为可选的?
以下是视图模型:
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 });
}
...
}