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 VB Web API-名称中带有句点的表单编码值的属性名称_Asp.net_Asp.net Mvc_Vb.net_Asp.net Web Api - Fatal编程技术网

Asp.net VB Web API-名称中带有句点的表单编码值的属性名称

Asp.net VB Web API-名称中带有句点的表单编码值的属性名称,asp.net,asp.net-mvc,vb.net,asp.net-web-api,Asp.net,Asp.net Mvc,Vb.net,Asp.net Web Api,问题: 我应该如何命名将通过HTTP请求中的表单编码输入分配的属性,以确保在我从表单编码输入创建类的新实例时填充该属性,该类将具有一些名称中带有句点的键 我有一个VB.NET应用程序,它使用ASP.NET自托管Web API 其中一个方法接受来自应用程序Bomgar的输入 发送的数据采用表单编码格式,如下所示: jump_item.comments= &jump_item.computer_name= &jump_item.group= &jump_item.privat

问题: 我应该如何命名将通过HTTP请求中的表单编码输入分配的属性,以确保在我从表单编码输入创建类的新实例时填充该属性,该类将具有一些名称中带有句点的键

我有一个VB.NET应用程序,它使用ASP.NET自托管Web API

其中一个方法接受来自应用程序Bomgar的输入

发送的数据采用表单编码格式,如下所示:

jump_item.comments=
&jump_item.computer_name=
&jump_item.group=
&jump_item.private_ip=
&jump_item.public_ip=
&jump_item.tag=
&jump_item.type=
&request_id=
&response_url=
&ticket_id=
&user.email_address=
&user.id=
&user.private_display_name=
&user.public_display_name=
&user.username=
通过建立一个具有相同名称属性的对象,我能够处理“请求id”、“响应url”和“票证id”部分

我这样做是因为我读到当接受表单输入并将包含此数据的http消息体发送到对象中时,它会自动将表单输入映射到包含这些名称的属性中

我有一个名为Ticket的类,定义如下:

Public Class Ticket
    Public Property response_url As String
    Public Property request_id As String
    Public Property ticket_id As String


End Class
我通过控制器中的以下内容将表单数据的内容映射到此类的实例中:

Public Sub PostProduct(<FromBody()> NewTicketRequest As Ticket)

...

End Sub


即使输入的项目将在单词user之后有一个句号。

您可以将复杂属性添加到您的
票证
模型中。这些属性的名称应与“.”之前的前缀匹配,并且这些属性的类型应包含名称在“.”之后的属性

例如,要获取
jump\u item.*
值,您的
票证
模型应包含名为
jump\u item
的属性,该属性的类型包含名为*的属性:
comments
computer\u name
group
private\u ip
public\u ip
标签
类型

示例

在下面的示例中,我向使用Visual Studio创建的默认ASP.NET WebAPI项目添加了一个模型、控制器和视图

模型

控制器

公共类值控制器
继承ApiController
'后api/值
公共子PostValue(ByVal值作为票证)
端接头
末级
看法



这是一个极好的回答。我对整个模型/控制器/视图方面没有经验;我目前只有一个使用ASP.NET Web API的桌面应用程序。是否需要查看?这非常有效!我非常感谢你,你能告诉我吗;如果我通过XML接受一个类似的输入,该输入有一个XML标记,该标记下面包含一个对象列表,这会涉及到在我的类上设置一个属性作为列表中的对象数组,并将带有列表的元素传递给该数组吗?例如,到包含所有子属性的会话数组?我知道这要求很高,但你能告诉我怎么做吗?或者我应该设置一个单独的问题?我不确定XML,但是关于包含复杂对象嵌套列表的GET/POST值,您可以使用Phil Haack在这篇伟大的文章中描述的技术:顺便说一下,您的问题有一个被遗忘的+1。
NewTicketRequest.user.email_address
NewTicketRequest.user_email_address
Public Class Ticket
    Public Property Id As Integer
    Public Property Text As Integer
    Public Property User As ApplicationUser
End Class

Public Class ApplicationUser
    Public Property Id As Integer
    Public Property UserName As String
    Public Property DisplayName As String
End Class
Public Class ValuesController
    Inherits ApiController

    ' POST api/values
    Public Sub PostValue(<FromBody()> ByVal value As Ticket)

    End Sub
End Class
<form action="/api/values" method="post">
    <input type="text" name="Id" />
    <input type="text" name="Text" />
    <input type="text" name="User.Id" />
    <input type="text" name="User.UserName" />
    <input type="text" name="User.DisplayName" />
    <input type="submit" value="Save" />
</form>