2013-02-25 110 views
2

我有以下控制器需要四個參數和一個獲取字符串數組。傳遞字符串數組參數到MVC控制器

public Response Get(string a, double b, double c, string[] d) 
{ 
    do something 
} 

正如你看到第四個(d)參數是一個字符串數組。前3個參數獲取值,但d顯示爲空。

我使用招用以下網址

04/api/Controller?a=Hello&b=-37.8031231&c=144.9836514&d=Italian&d=bars 

我做什麼錯了調試?它是網址嗎?

回答

1

沒有看到你的觀點,我可以抽象,你命名的2個輸入姓名=「d」沒有索引

例如:

您可以通過數組索引命名您的ID輸入創建一個數組。

@using (Html.BeginForm()) 
{ 
    <input type="text" name="d[1]"> 
    <input type="text" name="d[2]"> 
} 

如果索引你的投入,該框架將使用它們作爲一個列表

注: 你帶了網址。無法傳遞數組或任何沒有Post的複雜對象。

+0

張貼感謝您抽出時間來回答。我沒有索引,但只有一個控制器和m使用提琴手。這是一個手動輸入的網址。那麼我的網址應該如何呢?我的意思是我應該使用/api/Controller?a=Hello&b=-37.8031231&c=144.9836514&d1=Italian&d2=bars – Deeyo 2013-02-25 05:59:29

+0

@ user2094169,您無法將數組傳遞給帶有URL的控制器。你必須使用一個表單。 – 2013-02-25 06:00:28

+0

伊斯蘭會議組織,感謝小費。 Goodday – Deeyo 2013-02-25 06:04:15

1

您可以從fiddler發佈數組數據,您提供的URL是正確的。但請確保在請求標頭中有正確的內容類型

您不必創建視圖來測試您的控制器操作方法。

客戶端請求

enter image description here

服務器輸入反應

enter image description here

附:以上提供的是控制器操作方法,我注意到您在發佈答案後使用了api控制器。我會爲api控制器編輯答案。

上述工程APIController還有,如果從小提琴手