C# 我可以通过ASP.NET将对象从客户端javascript发送到服务器端代码吗?
我可以通过ASP.NET将对象从客户端javascript发送到服务器端代码吗?可以。您可以使用Json和POST。如果您使用的是jQuery,那么可以使用$.ajax将值发布到服务器端。希望这有帮助。是的。一种方法是,使用web方法;例如:C# 我可以通过ASP.NET将对象从客户端javascript发送到服务器端代码吗?,c#,javascript,asp.net,vb.net,C#,Javascript,Asp.net,Vb.net,我可以通过ASP.NET将对象从客户端javascript发送到服务器端代码吗?可以。您可以使用Json和POST。如果您使用的是jQuery,那么可以使用$.ajax将值发布到服务器端。希望这有帮助。是的。一种方法是,使用web方法;例如: 创建服务 来自JavaScript方法的调用,如:DataService.Push(yourObject) 例如: Javascript方法: function btnGenerate_onclick(result) { DataService.P
DataService.Push(yourObject)
李>
例如:
Javascript方法:
function btnGenerate_onclick(result) {
DataService.Push(getDataFromSomeDiv(), onGenerateReportComplete /*callback method*/);
//or
//DataService.Push(document.getElementById("myDiv").innerHTML, onGenerateReportComplete /*callback method*/);
}
function onGenerateReportComplete(result) {
alert("Success:" + result);
}
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class DataService : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)] //If you want?
public bool Push(object someObject)
{
//var v = someObject as MyObjectClass;//Process object
return true;
}
}
服务方式:
function btnGenerate_onclick(result) {
DataService.Push(getDataFromSomeDiv(), onGenerateReportComplete /*callback method*/);
//or
//DataService.Push(document.getElementById("myDiv").innerHTML, onGenerateReportComplete /*callback method*/);
}
function onGenerateReportComplete(result) {
alert("Success:" + result);
}
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class DataService : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)] //If you want?
public bool Push(object someObject)
{
//var v = someObject as MyObjectClass;//Process object
return true;
}
}
编辑:javascript如何知道什么是服务器端数据服务?
这将需要在标记中引用web服务。例如:
<asp:ScriptManager ID="sm" runat="server">
<Services>
<asp:ServiceReference Path="DataService.asmx" />
</Services>
</asp:ScriptManager>
并非如此。您可以将对象序列化为字符串,将该字符串发送到ASP.NET,然后在另一端再次将其转换为对象
JSON是一种很好的序列化格式,您可以将简单对象直接放入各种库中,这些库都是JSON的基础
对于更复杂的对象,在执行此操作之前,需要提取重新创建它们所需的相关数据位。在ASP.NET WebForms中,我将使用ScriptService:
签出此示例:
如果要向服务传递/获取孔对象,可以使用GenerateScriptType
属性:
Ben Dotnet关于在asp.net WebForms中使用脚本服务的看法是正确的。除了使用脚本服务装饰器外,GenerateScriptType装饰器对于确保包含您想要使用的复杂类型也很重要。除此之外,我发现Ben链接的文章也很有用:
这就是我如何做到你所尝试的。首先,我定义了要在代码隐藏文件中使用的自定义类型
namespace TestProject
{
public class SampleData
{
public int id { get; set; }
public string StartDate { get; set; }
public string EndDate { get; set; }
public SampleData()
{ }
}
public partial class SamplePage : System.Web.UI.Page
{
/* The rest of the SamplePage.aspx.cs file goes here */
}
}
然后我在SamplePage代码中创建了一个WebMethod/ScriptMethod,如下所示:
[WebMethod]
[ScriptMethod]
[GenerateScriptType(typeof(SampleData))]
public static bool EditReminder(SampleData data)
{
/* Server side code goes here */
return true;
}
然后,在客户端页面上,我能够创建SampleData类型的对象,并使用如下PageMethods传递该对象。不要忘记包含名称空间,这是必要的
另外,不要忘记在页面的某个地方包括脚本管理器并启用如下页面方法:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
你能告诉我更多关于Json的信息吗(解释,举例)?这是一个很好的参考点,你错过了一些东西。javascript如何知道什么是服务器端数据服务?您的示例显示了如何调用web服务并传递单个值,但是它没有显示如何传递对象(包括属性)。