标签: pagemethods

PageMethods与ASP.Net MVC

我发现ASP.Net PageMethods非常方便易用,但我刚开始使用MVC开发并且不确定如何使用它们?

PageMethods.MyFunction()在MVC中,MyFunction是Controller动作的等价物是什么?

我知道我可以使用该Json函数返回一个值,但是如何从客户端调用该操作?

javascript asp.net-mvc pagemethods

5
推荐指数
1
解决办法
3456
查看次数

何时使用页面方法而不是创建Web服务?

我们的团队正试图找出使用页面方法与创建实际asmx Web服务的一些指导原则.在我看来,页面方法主要用于特定于页面的一种类型的调用,其中asmx旨在表示更多可重用的操作和服务.这听起来不错吗?

asmx pagemethods

5
推荐指数
1
解决办法
1927
查看次数

从客户端SIde上的ASP.NET PageMethods获取异常详细信息

我有一个页面方法,我从我的JavaScript中打电话说

Pagemethods.MyMethod(MyParameter, onsucess, onfailure);
Run Code Online (Sandbox Code Playgroud)

在守则背后,我有这样的事情:

[WebMethod]
public static void MyMethod(Param)
{
   try{
     //DoSomething..
   }
   catch(exception ex)
   {
      //Log the exception and rethrow
      throw new exception(ex.innerexception);
   }
}
Run Code Online (Sandbox Code Playgroud)

现在我面临的问题是:

每当我得到异常时,我都会从代码中抛出异常

但是在onfailure方法中,我只是得到一条通用消息,说"服务器方法MyMethod失败并出现以下错误:"

我似乎没有得到异常细节,只有那个通用异常,

我如何获得JavaScript的异常细节,以便根据UI/JavaScript方面处理它.

我已经验证,这不是web.config中自定义错误设置的问题.

有人可以告诉我这里发生了什么吗?

PS:我已经逐步完成了每一行代码,并且在记录之后异常重新抛出了正确的异常细节,即消息.

web-services exception asp.net-ajax asmx pagemethods

5
推荐指数
1
解决办法
9709
查看次数

从Javascript接收PageMethod中的动态对象

new object()在Javascript中创建了一个,将一些值放入其中并将其传递给PageMethod...

var filters = new object();

filters.Name = $("#tbxName").val();
filters.Age = parseInt($("#tbxAge").val());

PageMethods.getPeople(filters, getPeopleCallback);
Run Code Online (Sandbox Code Playgroud)

......在它的签名中,它会收到一个dynamic论点.

[WebMethod]
public static object getPeople(dynamic filters)
{
    ...
Run Code Online (Sandbox Code Playgroud)

整个代码编译并运行没有问题,除了服务器端PageMethod,它将dynamic参数理解为Dictionary.

当我调试代码以查看filters对象的定义时,它显示以下类型:filters = {System.Collections.Generic.Dictionary<string,object>}

因此,处理它的唯一方法是将其用作Dictionary......

var name = filters["Name"];
var age = filters["Age"] as int?;
Run Code Online (Sandbox Code Playgroud)

..但我的意图是将它用作动态对象

var name = filters.Name;
var age = filters.Age;
Run Code Online (Sandbox Code Playgroud)

我知道这根本不是什么大问题,而且我作为一个字典访问它绝对没有问题(而且我也知道我可以创建一个DynamicObject"代理"来像动态对象一样访问字典).

我只想了解这一点.所以:

  1. 为什么PageMethod将其理解为字典?
  2. 有没有办法使这个工作作为动态对象("代理"方法除外)?

我希望这可以工作,因为我通常Filter在服务器端定义这些类并在Javascript中按照相同的结构创建它,并且当我将Type定义为参数时,PageMethod理解它并正确转换它(例如:) getPeople(Filters filters).所以,我想知道它是否也可以用动态对象(节省我的时间和不必要的类).

感谢您的时间和帮助.

javascript c# asp.net dynamic pagemethods

5
推荐指数
1
解决办法
1504
查看次数

在asp.net网站中为多个会话用户交换内容

我正在开发一个asp.net网站.

  • 当两个不同的用户使用不同的会话访问该网站时,一个用户内容将被交换到另一个用户.
  • 我正在使用javacsript,从.aspx页面调用pagemethods,在代码后面调用C#.
  • 当两个用户一次调用相同的功能时,主要发生此问题.
  • 我认为静态变量可能会导致这个问题,并尝试不使用任何静态变量或静态函数,除了pagemethod函数,其中页面方法是静态的.

请帮我解决这个问题.

c# asp.net static-methods session-variables pagemethods

5
推荐指数
2
解决办法
2266
查看次数

ASP.NET使用PageMethods在回发之间保留label.text值的最佳方法

ASP.NET 2.0,PageMethods。

美好的一天,

当我的页面上的下拉列表更改时,我正在使用ASP.NET AJAX PageMethods动态更改Label的文本。

我知道在客户端更改标签的文本不会在回发之间保留,这就是我的情况。我听说解决方案是将标签内容保留在隐藏字段中,然后在Page_Load中从该字段设置标签文本。

但是,这种解决方案对我来说似乎并不干净。还有其他选择或最佳做法吗?

谢谢!


为了澄清一下,我有一个带有人名的下拉列表。当下拉列表更改时,我想在标签中放入该人的电话。但是,我认为进行完整的回发并不是真正的最佳选择,因此我决定使用PageMethod来获得电话,并通过下拉列表中选择的项目的ID来检索电话,并将其放入标签中。

但是,由于其他控件导致了完整的回发,因此每次回发都会丢失电话。我知道将其放在隐藏字段中,然后在有完整的回发时将其设置回Page_Load中的标签是可行的,但是如果有其他解决方案,我会在措手不及。由于WebMethods被标记为静态,因此我无法编写Label.text = person.Telephone; 在他们中。

asp.net viewstate ajax pagemethods

4
推荐指数
1
解决办法
2万
查看次数

在用户控件asp.net中使用页面方法的替代方法

有没有办法在用户控件中实现页面方法的功能.

任何帮助表示赞赏,谢谢:)

asp.net ajax user-controls pagemethods

4
推荐指数
1
解决办法
3735
查看次数

PageMethods未定义

我正在设置PageMethods以使用javascript访问服务器端代码.我使用firebug进行调试时收到错误"PageMethods未定义".服务器端代码也没有被触发.

我已将脚本管理器"EnablePageMethods"设置为true.我的方法是public和static,它也设置了WebMethod属性.我仍然收到上述错误.可能是因为脚本管理器位于顶级母版页中,该母版页有两个子母版页,然后我的页面被调用:

主母版页(带脚本管理器) - >主母版页 - >辅助母版页 - >我的页面 - >我的用户控件(具有WebMethod)

层次结构是否可能导致此问题?

这是web方法

 [System.Web.Services.WebMethod]
public static void AddNote(string t)
{
    int propid = 1; 
    if (propid > 0)
    {
     //Call my method
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的javascript代码:

  function editNodes(t) {
    alert('test1');
    alert(t);
    PageMethods.AddNote(t,OnSuccess,OnFailure);
    alert('method called');
}
function OnSuccess() { 
    alert('Success'); 
    if (!navigator.appName == 'Microsoft Internet Explorer') {
        window.location.href = window.location.href;
    }

}
function OnFailure(error) {
    alert('Error:' + error);
}    
Run Code Online (Sandbox Code Playgroud)

这就是我所说的:

   <a href="#" class="btngeneral" onclick="javascript:editNodes(2);">Save</a>
Run Code Online (Sandbox Code Playgroud)

.net asp.net ajax master-pages pagemethods

4
推荐指数
2
解决办法
3万
查看次数

页面方法从jQuery调用到Sharepoint

我在_LAYOUTSMS SharePoint 2010 的文件夹中部署了一个应用程序页面(aspx).

我想在[WebMethod]使用jQuery 标记属性的页面内调用一个方法.我正在使用以下代码document.ready():

$("#btnOk").click(function () {
    var theUrl = '/_layouts/MyProject/MyPage.aspx/MyMethod';
    $.ajax({
        type: "get",
        dataType: "json",
        url: theUrl,
        data: {},
        success: function (response) {
            [...]
        },
        error: function (xhr, textStatus, errorThrown) {
            [...]
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

遗憾的是,此代码不起作用.问题在于URL:事实上,如果我使用这样的绝对URL,它就可以工作

var theUrl = 'http://server/sites/xxx/_layouts/MyProject/MyPage.aspx/MyMethod';
Run Code Online (Sandbox Code Playgroud)

我怎样才能以绝对的方式改变我的道路?

asp.net url jquery pagemethods sharepoint-2010

4
推荐指数
1
解决办法
6519
查看次数

ASP.NET PageMethod onSuccess 函数返回 HTML 字符串

这很奇怪。javascript 文件中的 onSuccess() 函数返回整个网页的大量HTML 代码,而不是我实际从 C# WebMethod 返回的值

1) 我在 Windows 10 上运行 Visual Studio 2015

2) 调试时,我在 SignupAccount C# 方法处保留了一个断点。断点没有被击中。还没有到那个地步。但是调用了 onSuccess 函数

这是一个解释:

ASP.NET Web 表单的 HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
   <!--Code-->
 </head>
 <body class="account2 signup" data-page="signup">
   <!--Code-->
   <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

    <input type="text" name="firstname" id="firstname" placeholder="First Name" required autofocus>

    <input type="text" name="lastname" id="lastname" placeholder="Last Name" required autofocus>

    <button type="submit" onclick="signup()" id="submit-form" class="btn btn-lg btn-dark btn-rounded" data-style="expand-left">Sign In</button>

    <script src="JS/Account.js"></script>
   </form>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

C# …

javascript c# asp.net pagemethods webmethod

4
推荐指数
1
解决办法
3311
查看次数