Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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
C# 如何将参数从excel post传递到控制器操作_C#_Asp.net Mvc_Excel_Http Post_Vba - Fatal编程技术网

C# 如何将参数从excel post传递到控制器操作

C# 如何将参数从excel post传递到控制器操作,c#,asp.net-mvc,excel,http-post,vba,C#,Asp.net Mvc,Excel,Http Post,Vba,如何将已发布的参数传递给控制器操作?无法在URL中传递,因为参数太大:以下是我从excel中获取的用于发布参数的代码: Sub PostDataTest() Dim PostData As String Dim Comments As String Dim PostDataURL As Srting PostDataURL = "http://localhost:11121/InsertData/TestData/" Comments = Me.Comments.Value Set

如何将已发布的参数传递给控制器操作?无法在URL中传递,因为参数太大:以下是我从excel中获取的用于发布参数的代码:

Sub PostDataTest()
Dim PostData As String
Dim Comments As String
Dim PostDataURL As Srting

PostDataURL = "http://localhost:11121/InsertData/TestData/"

Comments = Me.Comments.Value

    Set httpReq = New MSXML2.xmlhttp

    httpReq.Open "POST", PostDataURL, False

    httpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

    PostData = "Comments=" & Comments

    httpReq.send PostData
     PostData = ""
    Set httpReq = Nothing

End Sub
这是我的控制器操作:我不能在URL中传递“注释”,因为它很长 是否有其他方法将此变量传递给下面的控制器操作

[HttpPost]
public ActionResult TestData(string Comments)
{
    TestData.Comments = Comments;
    DataContext.InsertTestData(TestData);      
}

你的帖子数据应该是“key=value”格式

你在哪里

PostData = Comments
应该是

PostData = "Comments=" & Comments
否则,控制器操作请求中的POST数据可能为空,或者MVC可能无法自动将该值绑定到操作方法中的
Comments
参数

有关参考信息,请参见以下帖子:

如果对
注释的绑定不起作用,您可以尝试通过将操作定义更改为:

[HttpPost]
public ActionResult TestData(FormCollection form)
{
    TestData.Comments = form["Comments"];
    DataContext.InsertTestData(TestData);      
}

所以,这不起作用?它怎么不起作用?POST不会将参数放在URL中,而是将数据隐藏在请求中。@Cory如何在控制器操作中检索该数据?在这种情况下,“Comments”以及如何从控制器操作中的“Comments”中检索值?@user793468:我不确定您在问什么:该值将已绑定到操作中的
Comments
字符串参数;i、 你的操作方法将完全保持你在文章中的方式。在URL中传递“评论”是不可能的,因为评论字符串非常大。在上面的代码中,我是通过URL将“注释”作为参数传递的。@user793468:参数仅在GET请求的URL中传递。您的代码使用POST请求,该请求将
注释嵌入到请求头中,该请求头可以是您想要的任何大小。好的,我尝试了上述方法,得到了一个“字符串引用未设置为字符串实例”错误,我调试了,并且控制器操作中的“注释”为空。我更新了上面的控制器操作。