Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 控制使用视图模型生成的表单元素的默认值和格式_Asp.net Mvc_Vb.net_Html Helper_Asp.net Mvc Viewmodel - Fatal编程技术网

Asp.net mvc 控制使用视图模型生成的表单元素的默认值和格式

Asp.net mvc 控制使用视图模型生成的表单元素的默认值和格式,asp.net-mvc,vb.net,html-helper,asp.net-mvc-viewmodel,Asp.net Mvc,Vb.net,Html Helper,Asp.net Mvc Viewmodel,我使用模型类生成表单元素,如下所示 Public Class BookAppointment Property DoctorNin As Integer Property PatientNin As Integer Property BookingDate As Date Property Doctors As IEnumerable(Of SelectListItem) End Class 当我将此视图模型传递到视图页面时,一些值已经作为默认值存在,但它们无

我使用模型类生成表单元素,如下所示

Public Class BookAppointment
    Property DoctorNin As Integer
    Property PatientNin As Integer
    Property BookingDate As Date

    Property Doctors As IEnumerable(Of SelectListItem)
End Class
当我将此视图模型传递到视图页面时,一些值已经作为默认值存在,但它们无效

像我使用的
PatientNin

<%= Html.TextBoxFor(Function(x) x.PatientNin)%>   

当表单被渲染时,它会得到一个
0
作为默认值,这是不需要的。如何控制这些默认值

在上述情况下,
BookingDate
也会发生同样的情况,在文本框中我得到
1/1/0001 12:00:00 AM
,这是一个格式错误和不需要的默认值


如何解决这样的问题?

整数类型的默认值为
零。因此,如果您没有为其指定任何值。它将带来零作为值


如果不需要默认的零值,可以将属性切换为可为null的类型。

如果不大于0,则将默认值更改为100:

<%= Html.TextBoxFor(Function(x) If(x.PatientNin > 0, x.PatientNin, 100))%> 
0,x.PatientNin,100%)>

我只希望表单字段中没有
0
。我可以在其他地方使用它们。然后您可能可以使用字符串类型,它在您的ViewModel中可以为null,而不是intBut。。。它将如何验证数据是否为数字,然后请参见另一个错误
模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。