如何将已发布的参数传递给控制器操作?由于参数很大,不能在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);
}
答案 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);
}