【问题标题】:Calling a C# webmethod using jquery ajax omitting optional parameters使用 jquery ajax 调用 C# webmethod 省略可选参数
【发布时间】:2014-05-27 10:34:47
【问题描述】:

我有一个这样的网络方法:

[WebMethod(EnableSession = true)]
public string testMethod(string param1, string param2="default value")
{
    .......
}

我正在尝试使用省略可选参数的 jquery 调用此方法,并且 web 方法没有被命中。

$.ajax({
    type: "POST",
    url: url,
    data: { "param1": "value1" }
}).complete(function (data) {....});  

我也只在传递第二个参数时才起作用。有没有办法解决这个问题?

【问题讨论】:

标签: c# javascript jquery ajax


【解决方案1】:

我认为您不能将 Optional Params 与 Web 服务方法一起使用,您可能需要重载该方法...

[WebMethod(EnableSession = true, MessageName = "testMethod"))]
public string testMethod(string param1, string param2)
{
      .......
}

[WebMethod(EnableSession = true, MessageName = "testMethod")]
public string testMethod(string param1)
{
      testMethod(param1, "default value");
}

编辑:文章链接。

还有一个article here 值得一读以了解其他方法,虽然它得出的结论是不使用重载,但我想这是你的决定。

【讨论】:

  • 谢谢,这就是我现在打算做的。只是想知道我们是否可以在不重载方法的情况下做到这一点
  • @Sharun,我添加了一篇文章的链接,请参阅编辑。我认为您实际上不能,我们确实在工作中也对其进行了研究,并提出了相同的解决方案。
  • 我认为你应该在每种方法上使用不同的MessageName,因为虽然我使用相同的名称它不起作用但使用不同的名称它可以工作。
  • @TarıkÖzgünGüner,我在最后提到重载
猜你喜欢
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 2018-12-14
  • 2011-02-08
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多