2011-12-01 24 views
2

我如何傳遞一個發佈參數到一個控制器的動作?着通過它的URL作爲參數是巨大的:這是從Excel我的代碼,我用它來發布參數:如何從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通過「意見」,因爲它是非常long 有沒有其他的方法可以將這個變量傳遞給下面的控制器動作?

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

所以,這也不行?它怎麼不工作? POSTing不會將參數放入URL中,而是將數據隱藏在請求中。 –

+0

@Cory我將如何檢索控制器操作中的數據?在這種情況下「評論」 – user793468

回答

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);  
} 
+0

如何從我的控制器操作中的「評論」中檢索值? – user793468

+0

@ user793468:我不確定你在問什麼:這個值已經綁定到你操作中的'Comments'字符串參數;即您的操作方法將完全保持您在帖子中的樣子。 –

+0

由於評論字符串非常龐大,因此無法在URL中傳遞「評論」。我在上面的代碼中如何使用它是通過將URL作爲參數傳遞給「評論」。 – user793468

相關問題