1

Url.Action を使用してコントローラーの c# 関数を呼び出そうとしています。

public ActionResult Setup(string ID, string Definition)

この関数はコントローラー クラス MachineController.cs にあり、PartialView を返します。

だから、私のスクリプトでは、次の行で関数 'Setup' を呼び出そうとしています:

var selected = $('#dropselector').find(':selected').text();

$.get('@Url.Action("Setup", "Machine", new { ID = @Model.ID , Definition = "_holder"})'.replace("_holder", selected), function (data) {
     $('#MachineSetup').replaceWith(data);
});

最初のパラメーター (ID) は問題なく渡されますが、2 番目のパラメーター (定義) は常に空の文字列です。@Model.ID に 'Definition' を割り当ててみましたが、どちらも文字列であるため、ID フィールドと同じですが、同じ結果になるようです.ID は入力されていますが、Definition は空の文字列です.

問題は間違いなく 2 番目のパラメーターの受け渡しに関連しています。何かアイデアはありますか?

4

1 に答える 1

0

次のことを試すことができます

var selected = $('#dropselector').find(':selected').text();

$.get(
   '@Url.Action("Setup","Machine", new { ID = @Model.ID })',
   {
     data:{definition:selected}
   } , 
   function (data) 
   {
       $('#MachineSetup').replaceWith(data);
   });

URL には が含まれますModel.IDが、選択した動的な値は変更されます。

また、値がクライアント マシンにキャッシュされていないことを確認Setupするアクションを考慮しないでください。POST

于 2013-10-22T11:10:31.377 に答える