如何将参数从Excel帖子传递到控制器操作

时间:2011-12-01 16:21:29

标签: c# asp.net-mvc excel-vba 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 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);      
}

1 个答案:

答案 0 :(得分:2)

您的POST数据应采用“key = value”格式。

你在哪里

PostData = Comments

应该是

PostData = "Comments=" & Comments

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

请参阅以下文章以供参考:

如果对Comments的绑定无效,您可以尝试通过将操作定义更改为以下内容来将值拉出请求:

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