私はその質問を完全に理解していると 100% 確信しているわけではありません。(api ではなく) jquery からコントローラーに投稿する方法を意味している場合は、次の行に沿った単純な変更です。
$.post('@Url.Action("actioname","controller")', { AgentId: AgentId, ReportName: ReportName, Params: Params, StatsEmailedId: StatsEmailedId, HeaderName: HeaderName,
RankBy: RankBy, SoldCountsInclude: SoldCountsInclude, SortBy: SortBy, IncludeCo: IncludeCo, DisplayTop: DisplayTop, UserOffice: UserOffice
},
function (data) { ....
}
});
コントローラー内で内部メソッドを呼び出す場合は、コントローラー内で別のメソッド呼び出しを呼び出すかのように呼び出すだけです。
さらに提起された点は、独自のファイル内に js がある可能性があることです。その場合、そのような@Url.Action()
ものは使用できません。この場合、jquery の data-attributes を使用し、ターゲット URL を主要な dom 要素の 1 つに配置してから、ソース ファイルの .data('your-attr') を使用して js からそれをターゲットにすることをお勧めします。非常にうまく機能し、間違いなく私の推奨事項です。
[編集] - 質問は def に関連してWebClient
いますが、外部 js 実装のデータ属性を使用して、私が何を意味するかを示す価値があると思います:
//the cshtml code
<button id="myUpdateButton" data-target-url="@Url.Action("youraction", "controller")">
//the js code (assumes click on myUpdateButton)
var targetUrl = $(this).data('target-url');
// then use targetUrl in place of the 1st param in the `$.post` method.
とにかく、私だけがオットです:-)