Как передать параметр из поста Excel в действие контроллера - PullRequest
2 голосов
/ 01 декабря 2011

Как я могу передать опубликованный параметр в действие контроллера? Не могу передать его в 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 Ответ

2 голосов
/ 01 декабря 2011

Ваши данные POST должны быть в формате "ключ = значение".

Где у вас есть

PostData = Comments

Вероятно, должно быть

PostData = "Comments=" & Comments

В противном случае данные POST в запросе действия контроллера могут быть пустыми или MVC может не иметь возможности автоматически привязать значение к параметру Comments в вашем методе действия.

См. Следующие сообщения для справки:

Если привязка к Comments не работает, вы можете попытаться извлечь значение из запроса, изменив определение действия на:

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