Posso enviair um object do javascript do lado do cliente paira o código do lado do server via ASP.NET?

Posso enviair um object do javascript do lado do cliente paira o código do lado do server via ASP.NET?

  • Compilador de encerramento Serviewside Source Map Pairsing
  • Substitua personagens especiais
  • Passair list de ints de JavaScript paira C # - Recebo a list, mas está vazia; Os dados do formulário não estão estruturados corretamente?
  • Passe uma matriz de javascript paira c #
  • Solicite o validador de campo obrigatório através do javascript
  • Ligair ao file JSON no ASP.NET MVC 4
  • 0x800a138f - erro de tempo de execução do JavaScript: o valor da propriedade '$' é nulo ou indefinido, não um object de function
  • Obtenha clientid no controle do user do file javascript externo
  • O método ScriptManager.RegisterStairtupScript () não está funcionando - ASP.NET, C #
  • Retorne o Json do controlador MVC, mas o format da data não é adequado no javascript
  • GraphQL e dataLoader em aplicativos / serveres sepairados
  • Em um module de nó nativo, como posso gairantir que meu código asynchronous esteja sempre em execução no mesmo tópico?
  • 5 Solutions collect form web for “Posso enviair um object do javascript do lado do cliente paira o código do lado do server via ASP.NET?”

    Em ASP.NET WebForms, eu usairia um ScriptService:

    Mairque estas amostras paira viewificação: http://msdn.microsoft.com/en-us/magazine/cc163499.aspx

    O atributo GenerateScriptType pode ser usado se você quiser passair / obter objects de furo no service: problema de desserialization ASP.NET ScriptService com types derivados

     [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); } } [WebServiceBinding (ConformsTo = WsiProfiles.BasicProfile1_1)] [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); } } [ScriptService] [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); } } { [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); } } [WebMethod] [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); } } { [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); } } } [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); } } 

    Sim. Uma maneira poderia ser, paira usair um método web; por exemplo:

    1. Criair um service
    2. Chamair do método JavaScript como: DataService.Push(yourObject) ;

    Por exemplo:

    Métodos 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); } } 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); } 

    Métodos de service:

     [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } [WebService (Namespace = "http://tempuri.org/")] [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } [WebServiceBinding (ConformsTo = WsiProfiles.BasicProfile1_1)] [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } [System.Web.Script.Services.ScriptService] [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } { [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } { [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } retornair viewdadeiro; [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } } [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) { //vair v = someObject as MyObjectClass;//Process object return true; } } 

    EDITAR: Como o javascript saberia o que é o DataService do lado do server?

    Isso exigirá a reference do service web na maircação. Por exemplo, como segue:

     <asp:ScriptManager ID="sm" runat="serview"> <Services> <asp:ServiceReference Path="DataService.asmx" /> </Services> </asp:ScriptManager> <asp: ScriptManager ID = "sm" runat = "server"> <asp:ScriptManager ID="sm" runat="serview"> <Services> <asp:ServiceReference Path="DataService.asmx" /> </Services> </asp:ScriptManager> <Serviços> <asp:ScriptManager ID="sm" runat="serview"> <Services> <asp:ServiceReference Path="DataService.asmx" /> </Services> </asp:ScriptManager> </ Serviços> <asp:ScriptManager ID="sm" runat="serview"> <Services> <asp:ServiceReference Path="DataService.asmx" /> </Services> </asp:ScriptManager> 

    Ou você pode usair callbacks / methods de página .

    Não como tal. Você pode serializair o object paira uma string, enviair essa string paira o ASP.NET e, em seguida, conviewtê-lo em um object novamente do outro lado.

    O JSON é um bom format de serialization paira isso, e você pode descairtair objects simples diretamente nas várias bibliotecas que estão por perto (e estão listdas na penúltima seção da página inicial do JSON ).

    Paira objects mais complexos, você precisairá extrair os bits de dados que você precisa paira recriá-los antes de fazer isso.

    Sim. Você pode usair o Json e fazer o POST. Se você estiview usando jQuery, você pode usair $ .ajax paira postair os valores no lado do server. Espero que isto ajude.

    Ben Dotnet tem razão sobre como usair um ScriptService no asp.net WebForms. Além de usair o decorador ScriptService, o decorador GenerateScriptType é importante paira gairantir que o tipo complexo que você deseja usair esteja incluído. Eu findi os airtigos que Ben ligou paira ser útil, além disso: http://www.webreference.com/programming/asp-net-ajax/complex-data-types/index.html

    Aqui é como eu consegui fazer exatamente o que você está tentando. Primeiro, eu defini o tipo personalizado que eu queria usair no meu código por trás do file.

     namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } { namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } { namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } } namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } } namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } } namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } {} namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } } namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } { namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } } namespace TestProject { public class SampleData { public int id { get; set; } public string StairtDate { get; set; } public string EndDate { get; set; } public SampleData() { } } public pairtial class SamplePage : System.Web.UI.Page { /* The rest of the SamplePage.aspx.cs file goes here */ } } 

    Então eu criei um WebMethod / ScriptMethod no meu código de amostra de trás assim:

     [WebMethod] [ScriptMethod] [GenerateScriptType(typeof(SampleData))] public static bool EditReminder(SampleData data) { /* Serview side code goes here */ return true; } [WebMethod] [WebMethod] [ScriptMethod] [GenerateScriptType(typeof(SampleData))] public static bool EditReminder(SampleData data) { /* Serview side code goes here */ return true; } { [WebMethod] [ScriptMethod] [GenerateScriptType(typeof(SampleData))] public static bool EditReminder(SampleData data) { /* Serview side code goes here */ return true; } retornair viewdadeiro; [WebMethod] [ScriptMethod] [GenerateScriptType(typeof(SampleData))] public static bool EditReminder(SampleData data) { /* Serview side code goes here */ return true; } 

    Então, na página do lado do cliente eu consegui criair um object do tipo SampleData e passair isso usando o PageMethods como este. Não se esqueça de include o espaço paira nome, isso é necessário.

     function some_javascript_function () { vair sample_data = new TestProject.SampleData() sample_data.id = 1; sample_data.StairtDate = '6/24/1976'; sample_data.EndDate = '3/20/2012'; PageMethods.EditReminder(sample_data, OnEditReminderComplete) } function OnEditReminderComplete () { if (result) alert("Success!"); else alert("Failure!"); } } function some_javascript_function () { vair sample_data = new TestProject.SampleData() sample_data.id = 1; sample_data.StairtDate = '6/24/1976'; sample_data.EndDate = '3/20/2012'; PageMethods.EditReminder(sample_data, OnEditReminderComplete) } function OnEditReminderComplete () { if (result) alert("Success!"); else alert("Failure!"); } 

    Além disso, não se esqueça de include o gerenciador de scripts e permitir methods de página como este em algum lugair em sua página:

     <asp:ScriptManager ID="ScriptManager1" runat="serview" EnablePageMethods="true" /> 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.