Asp.net mvc 为什么可以';我不能在MVC中执行此操作吗?
这是我的控制器操作:Asp.net mvc 为什么可以';我不能在MVC中执行此操作吗?,asp.net-mvc,vb.net,asp.net-mvc-3,Asp.net Mvc,Vb.net,Asp.net Mvc 3,这是我的控制器操作: <EmployeeAuthorize()> Function HRA_Table() As ActionResult ' get current employee's id Dim db1 As EmployeeDbContext = New EmployeeDbContext Dim user1 = db1.Tbl_Employees.Where(Function(e) e.Employee_EmailAddress = User.I
<EmployeeAuthorize()>
Function HRA_Table() As ActionResult
' get current employee's id
Dim db1 As EmployeeDbContext = New EmployeeDbContext
Dim user1 = db1.Tbl_Employees.Where(Function(e) e.Employee_EmailAddress = User.Identity.Name).Single()
Dim empId = user1.Employee_ID
Dim empSSN = user1.Employee_SSN
Dim hra = db.Tbl_HRAs.Where(Function(x) x.SSN = empSSN)
Return View(hra.ToList)
End Function
我得到的错误是:
“Tbl_HRA”上的“Height”属性无法设置为“String”
价值必须将此属性设置为类型为的非空值
“双人”
我似乎不明白为什么会发生这种错误。根据我读到的一些文章,我试着把它改成双倍,但还是不行
感谢您的帮助。这篇文章可能有用-看起来您的数据库架构有问题吗?此列在表中是否设置为可空
我想这会对你有帮助
<ul>
@For Each g As MvcApplication1.Genre In Model
@<li>@g.Name</li>
Next
</ul>
@对于每个g作为MVCAPApplication1.模型中的类型
@- @g.Name
下一个
并查看此url以获取更多帮助
看起来这可能是由该数据库引起的。看起来他们将这些设置为varchar而不是double,这并不理想。从您的注释中可以看出,表中的列是varchar。因此,模型必须将其定义为字符串。尝试将“高度”属性更改为以下内容:
Public Property Height() As String
不幸的是,不能在LINQ到SQL实现中直接进行类型转换。如果您愿意,您可以投射到另一个类型(在Select子句中),但是您仍然需要立即获取(context.GetTable(Of T))以使类型在数据库和模型之间等效。在哪一行获得异常?它指向我的控制器操作上的
返回视图(hra.ToList)
,但我只有在尝试对视图中的每个循环执行时才会出现错误。看起来这可能是由该数据库引起的。。。看起来他们将这些设置为varchar
而不是double
,这很可笑……这正是我读过的文章之一。我将类型更改为decimal
,但我不知道如何实现非空。在db表设计器中,它只是一个复选框选项。或者在EF designer中,如果您使用它,它将作为列的属性提供。或者在VB.Net中,我认为将像这个公共属性Height()这样的属性设置为可空(Double)可能会起作用,我也已经尝试过了。它也不能使循环工作。这是VB,不是C。无论如何,谢谢。不,我用的是VB。所以,我需要VB。是的,谢谢你,我知道。而不是使用字符串;但是,我相信我会尝试让他们将数据库列更改为使用double或decimal。
<ul>
@For Each g As MvcApplication1.Genre In Model
@<li>@g.Name</li>
Next
</ul>
Public Property Height() As String