Razor ビューに JavaScript 配列があり、$.ajax を使用して MVC ビューからコントローラーの GET アクションを呼び出しています。ビューから渡された Javascript 配列を受け入れるコントローラー アクションのパラメーター タイプは何であるべきか。「オブジェクト」として保持しようとしましたが、「[オブジェクト]」としてのみ表示され、プロパティはまったく表示されません。これを達成する方法のアイデアはありますか?
質問する
2301 次
2 に答える
3
配列内の値の型に完全に依存します。
次のように、整数の配列があるとします。
var intArray = [1,2,3,4]
次に、コントローラーで、List<int>
パラメーターの型として a を使用します。コントローラーは、変換を理解するのに十分賢いです。
ただし、より高度なものが必要な場合は、次のようになると思います。
var customArray = [{hello: "world", foo: "bar"}]
次に、次のようなプロパティを使用しhello
て、.NET でカスタム オブジェクトを作成することをお勧めします。foo
public CustomObject {
public string hello { get; set; }
public string foo { get; set; }
}
次にCustomObject
、またはList<CustomObject>
をパラメーターの型として使用すると、コントローラーがプロパティをマップします...魔法のように。
于 2013-05-07T08:59:47.480 に答える
3
それをajaxに渡して追加するだけですtraditional: true,
var ids = [0,1,2,3];
$.ajax({
url: '@Url.Action("SomeAction", "Home")',
type: 'POST',
traditional: true,
data: { array: ids },
...
コントローラ
public ActionResult SomeAction(int[] array){}
オブジェクト配列の場合
var objs = JSON.stringify(your_objects);
$.ajax({
url: '@Url.Action("SomeAction", "Home")',
type: 'POST',
data: { array: objs },
...
コントローラ
public ActionResult SomeAction(List<YourObjectType> array){}
ここをチェック
于 2013-05-07T08:59:58.470 に答える