asp.net mvc:直接为razor视图内的模型赋值

VSB*_*VSB 5 c# asp.net-mvc razor asp.net-mvc-5

我的创建剃刀视图中有以下代码片段:

@Html.EditorFor(model => model.UnitPrice)
Run Code Online (Sandbox Code Playgroud)

尝试直接设置UnitPriceusing 语句,如下所示:

@Model.UnitPrice = 100;
Run Code Online (Sandbox Code Playgroud)

我得到类似空指针异常的信息:Object reference not set to an instance of an object.

如何在发布之前为字段分配常量值以创建发布方法?

小智 4

在将模型传递给视图之前,您需要在模型中设置属性的值。假设你的模型是

public class ProductVM
{
    ....
    public decimal UnitPrice { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后在 GET 方法中

ProductVM model = new ProductVM()
{
    UnitPrice = 100M
};
return View(model);
Run Code Online (Sandbox Code Playgroud)

如果该值是适用于所有实例的“默认”值,您还可以在无参数构造函数中设置其值

public class ProductVM
{
    public ProductVM()
    {
        UnitPrice = 100M;
    }
    ....
    public decimal UnitPrice { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

请注意,原因NullReferenceException是您尚未将模型传递给视图。