2012-08-23 32 views
0

我生成使用Model类如下面控制使用图模型

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这是输出格式和不需要的默认值吗?

如何解决这样的问题?

+0

参见http://stackoverflow.com/questions/4351969/asp-net-mvc-data-annotations-datetime-default-值 –

回答

0

integer类型的默认值将是zero。所以如果你没有给它分配任何值。它会带来零值。

如果你不想要默认的零值,你可以将你的属性切换到Nullable类型。

+0

我只在表单字段中不需要'0'。我可以在其他地方与他们合作。 – mrN

+0

然后你可以使用在你的ViewModel中可以为空的字符串类型,而不是int – Shyju

+0

但是...它将如何验证数据为数字然后 – mrN

0

更改默认值100,如果其不大于0:

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

我得到一个错误'模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式 – mrN