0

jQuery を介して URL を介してデータを ASP.NET MVC コントローラーに渡す方法に精通していますが、今日コードを書いていて、フォーマット方法がよくわからない興味深い URL に出会いました...

ルートはこのようなものを読み取ります...

///////////////////////////////////////////
// route: /member/{0}/characters
///////////////////////////////////////////
public ActionResult Characters(int member){
 // get the list of the member's characters
}

したがって、実際には URL の真ん中に「パラメータ」があります。これが の jQuery の「データ」プロパティにどのように変換されるのかよくわからないので、これは私にとって興味深いものです$.ajax。普段ならこんな感じに設定するのに……。

$.ajax({
    url: '/member/characters',
    dataType: 'json',
    data: { member: 1 }
}).done(function (data) { viewModel.set("Player", data); });

しかし、それはこの状況ではうまくいかないようです。非常にばかげた文字列の書式設定を行うことができると思いますが、これをもう少しきれいに行うことを望んでいます...

このような奇妙なルートを処理するための提案はありますか?

4

1 に答える 1

0

dataクエリ文字列属性のみを設定するため、パラメーターを使用することはできません。あなたの値は実際にはパスの一部であるため、別のことをする必要があります。を使用@Url.Actionして正しい URL を生成し、パラメーターを省略してみてdataください。

$.ajax({
    url: '@Url.Action("Characters", "Member", new { member = 1 })',
}).done(function (data) { viewModel.set("Player", data); });

メンバー ID が JavaScript から動的に選択されている場合、これは機能しません。

そのためには、URL を手動で作成する必要があります。

var url = '/member/' + memberId + '/characters';
于 2013-08-28T19:34:48.760 に答える