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 实际上会在中间有“参数”。这对我来说很好奇,因为我不确定这如何转换为$.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 中动态选择的,这将不起作用。

为此,您必须手动创建您的网址:

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