我可以通过ASP.NET将客户端javascript的对象发送到服务器端代码吗?我可以通过ASP.NET将对象从客户端JavaScript发送到服务器端代码吗?
回答
是的。您可以使用Json并执行POST。如果您使用jQuery,则可以使用$ .ajax将值发布到服务器端。希望这可以帮助。
是的。一种方法可能是,使用网络方法;例如:
- 创建服务
- 从JavaScript方法,如呼叫:
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;
}
}
编辑:的javascript怎么会知道什么是服务器端的DataService ?
这需要在标记中引用Web服务。比如如下:
<asp:ScriptManager ID="sm" runat="server">
<Services>
<asp:ServiceReference Path="DataService.asmx" />
</Services>
</asp:ScriptManager>
或者您可以使用回调/ page methods。
你错过了一些东西。 javascript如何知道服务器端的DataService是什么? – VikciaR 2011-05-23 06:19:27
好问题,请参阅编辑。 – 2011-05-23 06:37:17
不一样。您可以将该对象序列化为一个字符串,将该字符串发送给ASP.NET,然后再将其转换为另一侧的对象。
JSON是一个很好的序列化格式,你可以将简单的对象直接到是围绕它(这是listed in the penultimate section of the JSON homepage)的各种库。
对于更复杂的对象,您需要先提取需要重新创建数据的相关位数据。
在ASP.NET的WebForms我会用一个ScriptService:
结帐这个样本: ASP.NET ScriptService deserialization problem with derived types
: http://msdn.microsoft.com/en-us/magazine/cc163499.aspx的GenerateScriptType
属性可以,如果你想通过/让孔对象服务使用
[WebService(Namespace = "http://msdnmagazine.com/ws")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[GenerateScriptType(typeof(Object1))]
[GenerateScriptType(typeof(Object2))]
[ScriptService]
public class StockQuoteService : WebService
{
static Random _rand = new Random(Environment.TickCount);
[WebMethod]
public int GetStockQuote(string symbol)
{
return _rand.Next(0, 120);
}
}
您的示例显示如何调用Web服务并传递一个值,但它不显示如何传递对象(包括属性)。 – 2011-05-23 06:47:18
Ben Dotnet在asp.net WebForms中正确使用ScriptService。除了使用ScriptService装饰器GenerateScriptType装饰器对于确保包含您想要使用的复杂类型很重要。我发现Ben链接的文章除了这个之外还有用:http://www.webreference.com/programming/asp-net-ajax/complex-data-types/index.html
下面是我如何能够完成你想要的。首先,我定义了我想在代码隐藏文件中使用的自定义类型。
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。 不要忘记包含命名空间,这是必要的。
function some_javascript_function() {
var sample_data = new TestProject.SampleData()
sample_data.id = 1;
sample_data.StartDate = '6/24/1976';
sample_data.EndDate = '3/20/2012';
PageMethods.EditReminder(sample_data, OnEditReminderComplete)
}
function OnEditReminderComplete() {
if (result) alert("Success!");
else alert("Failure!");
}
而且,不要忘了包括脚本经理和启用页面的方法,如在某个地方,你的网页上:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
- 1. 我可以通过服务器实现客户端 - 客户端通信吗?
- 2. Web服务可以将消息从服务器发送到客户端吗?
- 3. 通过Socket将复杂对象从Java客户端发送到C服务器
- 4. 通过javascript发送JSON数据从客户端到服务器通过javascript
- 5. 客户端可以查看服务器端PHP源代码吗?
- 6. 从服务器发送到客户端
- 7. RESTfull服务方法可以将任何对象发送到客户端吗?
- 8. 使用ASP.NET将文件从服务器发送到客户端
- 9. 通过TCP从C#客户端发送对象(类)到Java服务器
- 10. 从客户端发送序列化对象到服务器
- 11. .NET Ria服务可以将数据从服务器推送到客户端吗?
- 12. .NET Ria服务可以将数据从服务器推送到客户端吗?
- 13. 在我的客户端服务器代码中,我可以通过ifconfig通过Ipaddress执行telnet到服务器?
- 14. EJB服务器端可以将事件发送给EJB客户端吗?
- 15. 客户端JavaScript服务器 - 可能吗?
- 16. 我们可以将PDF文件从AngularJS客户端发送到NodeJS服务器
- 17. 通过客户端从服务器发送到服务器的敏感数据
- 18. 发送从JavaScript(客户端)的值来表示(服务器端)
- 19. 使用TCP通过套接字从服务器端发送ArrayList到客户端
- 20. 能从Asp:RadioButtonList调用客户端和服务器端代码吗?
- 21. Java客户端/服务器 - 我们可以使服务器作为客户端到另一台服务器吗?
- 22. 试图从客户端发送对象服务器(AngularJS $ http.post)
- 23. 从客户端发送文件到客户端通过HTTP
- 24. 通过服务器发送BufferedImage到另一个Java客户端
- 25. 通过网络服务从服务器发送PDF文件到客户端
- 26. 通过web服务从服务器发送文件到客户端
- 27. 无法发送(服务)对象从RMI服务器到客户端
- 28. 如何将OAuth对话框从PHP服务器发送到JavaScript客户端
- 29. 爪哇 - 如何从服务器发送通知到客户端
- 30. 无法通过websocket将数据从服务器发送到客户端
你能告诉我更多关于JSON(解释,例如)? – Badr 2011-05-23 06:01:25
这是一个很好的参考点http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx – ysrb 2011-05-23 06:11:47