尝试使视图模型项等于变量时出现空值错误

2024-01-05

我正在创建一个 MVC 应用程序,在其中向 JIRA 发送电子邮件。当我在视图中只有 IssueTable 的 ModelType 时,我最初让它工作,但是当我也更改它时 ModelType ViewModelClass.ViewModel 它停止正常工作。

在控制器中:

Public Function SubmitIssue(issuetable As IssueTable, test As IssueTracker.ClientUserProjectIssue ) As ActionResult

Dim mail As New MailMessage()
mail.Subject = issuetable.IssueSummary
Dim body As String = test.iTable.IssueDescription
mail.Body = body
smtp.Send(mail)

视图中:

@ModelType IssueTable

@Html.EditorFor(Function(model) model.IssueSummary)
@Html.EditorFor(Function(model) model.IssueDescription)

这最初是有效的,但我需要有多个表来发送数据,所以我创建了一个如下所示的 viewModel:

Public Class ViewModel
    Public proTableList As List(Of ProjectType)
    Public cTableList As List(Of ClientTable)
    Public proTable As ProjectType
    Public iTable As IssueTableViewModel
End Class

Public Class IssueTableViewModel
    Public IssueSummary As String
    Public IssueDescription As String
End Class

在视图中我显示了这样的信息:

@ModelType IssueTracker.ViewModel

@Html.EditorFor(Function(model) model.iTable.IssueSummary)
@Html.EditorFor(Function(model) model.iTable.IssueDescription)

现在问题出在控制器中,因为我尝试像这样填充描述和摘要的方式出现空错误:

Public Function SubmitIssue(issuetable As IssueTable, test As IssueTracker.ClientUserProjectIssue ) As ActionResult

Dim mail As New MailMessage()
mail.Subject = test.iTable.IssueSummary
Dim body As String = test.iTable.IssueDescription
mail.Body = body
smtp.Send(mail)

正如您所看到的,除了添加到代码中的明显 ViewModel 类之外,它是完全相同的。

这显然不是使用 viewModel 将值放入变量/电子邮件的正确方法,有谁知道我如何正确地做到这一点?


您需要删除BindAttribute从你的控制器方法,或将其更改为<Bind(Include:="iTable")>

您的视图模型不包含名为的属性IssueID, IssueSummary and IssueDescription,只有一个名为iTable(它又包含这些属性)。

但是,您使用视图模型,并且视图模型应该只包含视图中所需的属性,这意味着您不应该需要BindAttribute就你的方法而言。

假设您只编辑IssueSummary and IssueDescription的属性IssueTable(根据您的代码),那么您的视图模型应该是

Public Class ViewModel
    Public proTableList As List(Of ProjectType)
    Public cTableList As List(Of ClientTable)
    Public proTable As ProjectType
    // Public iTable As IssueTable // delete this
    Public IssueSummary As String // add this
    Public IssueDescription As String // add this
End Class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使视图模型项等于变量时出现空值错误 的相关文章

随机推荐