为什么@Model为null?

时间:2015-06-19 18:56:38

标签: asp.net-mvc model null

查看:Registration.cshtml

 @model MyNameSpace.Models.NewPatientRegistrationViewModel
 <div> ... All the HTML </div>

型号:AccountViewModels.cs

namespace MyNameSpace.Models
{

    public class RegistrationViewModel
    {
        [Display(Name = "Date of Birth")]
        public string DOB { get; set; }
        public int DOBYear { get; set; }
        public int DOBMonth { get; set; }
        public int DOBDay { get; set; }

        public NewPatientRegistrationViewModel() { }
    }

}

Controller:AccountControllers.cs

    public ActionResult Registration()
    {
        return View();
    }

在视图中,对@Model的引用出现null,并抛出null异常错误。对于MVC来说还是新手......我肯定我错过了一些明显的东西。

2 个答案:

答案 0 :(得分:5)

更改您的Controller操作以将视图模型返回到视图

public ActionResult Registration()
{
    var model = new RegistrationViewModel();
    return View(model);
}

您可以在视图模型上实例化其他属性,然后再将其传回给视图呈现

答案 1 :(得分:0)

模型可以为null的原因有很多,

一个。您可以从get方法传递null。批准的答案指出了这一点。

B中。您可能有一个与您在帖子上绑定模型的参数同名的字段。

public ActionResult Add(ContentImage image)
{
    if (ModelState.IsValid)
    {
        UploadImage(Request.Files["Image"]);

        //Some other actions
    }

    return View("Edit", image);
}

在我看来,我有:

@Html.TextBox("Image", string.Empty, new { type = "file" })