Develop an application using ASP.NET MVC that allows for returning a JavascriptResult along with a

Imagine this situation

When using MVC, it is quite simple to send a Javascript code back to the client for execution

public ActionResult DoSomething()
{       
    return JavaScript("alert('Hello world!');");            
}

On the client side, there is a Javascript function that requires a JSON object as input

It looks something like this:

function open(options) {...}

I needed to invoke this function from my action by passing a JSON object produced on the server so I tried doing this

public ActionResult DoSomething()
{
      var viewData = new {...};
      return JavaScript( "open('" + Json(viewData) + "')" );          
}

However, when my Javascript function gets called, instead of receiving data, I get this:

open('System.Web.Mvc.JsonResult')

If anyone could offer some guidance on this issue, it would be greatly appreciated

Many thanks

Answer №1

When using the Json method in ASP.NET, it returns a JsonResult instead of a JSON string. To work with this data, you can utilize the JavaScriptSerializer.

public ActionResult DoSomething()
{
      JavaScriptSerializer serializer = new JavaScriptSerializer();
      var viewData = new {...};
      return JavaScript( "open('" + serializer.Serialize(viewData) + "')" );          
}

If your client-side 'open' method requires JSON data as an object rather than a string, simply remove the quotes around the argument when passing the data.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Please enter only numerical values using jQuery

Currently, I am facing a slight issue. My goal is to only run the code when the input characters are numbers. This is the snippet of code I have been working with: $(".jq-sales, .jq-variablecosts, .jq-fixedcosts, .jq-additional-sales, .jq-sales-units, .j ...

Using AWS Athena with Java to retrieve data from columns of struct type

In Athena, I have created a table that maps some data stored in an AWS S3 bucket. One of the columns in this table is of type array containing objects (struct). CREATE EXTERNAL TABLE traceroute ( af int, dst_addr string, dst_name string, ` ...

switch between showing and hiding dynamic table rows

As I dynamically add rows to a table, each row can either be a parent row or a child row. My goal is to toggle the visibility of child rows when the parent row is clicked. if (response != null && response != "") { ...

Tips for extracting a subset of data from a MongoDB database

I have a vast database and I am looking for a solution to back up specific subsets of the data in order to be transferred to another mongodb instance. One example scenario is where I need to identify all documents containing a certain key, essentially usi ...

Securing specific pages in Angular front-end: A guide to implementing authentication

Interested in developing a web application using Node.js that allows users to log in (authentication). The app will have 3 non-secure pages (/home, /contact, /about) and one secure page (/admin). I've been consulting the Mean Machine book from scotch. ...

Navigating the Google Maps API: Implementing Scroll Zoom to Focus on a Single Marker

I'm looking for a solution for my project where the scroll zoom function will focus on zooming in on a marker or specific point rather than defaulting to the cursor. The current behavior is that the scroll zoom always centers on the cursor. Can anyone ...

Tips for managing the 'completed' button in an Android keyboard application using AngularJS/Ionic

Currently, I am working on developing a hybrid mobile application using AngularJS, Cordova, and the Ionic framework. Check out this Android 5.0 keyboard with a distinct blue button located at the bottom-right corner. https://i.stack.imgur.com/Tfija.png ...

Are the keys in Postgresql JSON displayed with underscores separating the letters?

I'm currently developing a web application that communicates with a Rails API on top of a Postgres database. As part of my data storage strategy, I am utilizing the jsonb datatype in Postgres to store certain data in JSON format. To adhere to a consis ...

Tips for customizing the color of the current date in the angular-material datepicker

I've created a function in angular-material to disable dates two days from now, but I'm struggling to change the color of the current date if it's disabled. The issue is that when the current date is disabled, it displays in a very light blu ...

Capture input before onChange and ideally only accept numerical values

Preparing for inexperienced users, I have a table of input fields. My goal is to enhance user experience and make the form as user-friendly as possible. I have developed code that highlights the table row immediately after an input field has changed. Howe ...

Using jQuery to dynamically format a date with variables

Looking to properly format a date for use in a compare function to sort data $(xml).find("item").each(function () { var dateText = $(this).find("Date").text(); var year = dateText.substr(0,4); var month = dateText.subst ...

Trigger a click event to alter the child div elements

I have a <div> that expands when clicked and shrinks back when clicked again. Inside this div are images that should only appear once the div expands. My issue is ensuring that all images except the first one are hidden until the div expands. https: ...

React BrowserRouter causing issues with "invalid hook calls"

Just starting out with React and I am working on setting up paths using BrowserRouter, Route, and Routes in my code. import React from "react" import "./App.css"; import { BrowserRouter as Router, Route, Routes } from 'react-router ...

React 17 Form not registering the final digit during onChange event

I am currently experiencing an issue with a form that includes an input field of type "number." When I enter a value, the last number seems to be skipped. For example: If I input 99 into the box, only 9 is saved. Similarly, when typing in 2523, only 252 ...

AngularJS - real-time validation using the $valid property

I have implemented AngularJS to handle form validation and submission. The submit button is configured as follows: <button type="submit" ng-disabled="btn" ng-click="submit(settings.$valid)" class="btn btn-primary"> Submit </button> The butt ...

What causes an array to accumulate duplicate objects when they are added in a loop?

I am currently developing a calendar application using ExpressJS and TypeScript. Within this project, I have implemented a function that manages recurring events and returns an array of events for a specific month upon request. let response: TEventResponse ...

Exploring the AngularJS global Date timezone offset

I want to display dates based on the users' time zones. I am hoping that Angular provides a way to globally configure the Date filter for this purpose. Doing it manually for each case doesn't seem right to me. My timestamps are already passed t ...

Issue with three.js memory leak due to malfunctioning .dispose() method or incorrect usage

Greetings! I'm currently facing a memory handling issue. Despite researching various forums, I am still unable to identify the problem in my code. My project involves combining d3.js with three.js to create a visualization of nodes resembling planet ...

I'm interested in knowing how to switch between two functions using Angular

I have developed a grocery list application where each row contains the name of a food item. The layout includes a left column for items that are not needed and a right column for items that are needed. Currently, I am able to change the state by clicking ...

Numeric value along with two characters following the decimal place

Imagine I have this number: 25297710.1088 My goal is to add spaces between the groups of digits and keep only two decimal places, like this: 25 297 710.10 I tried using the following code snippet: $(td).text().reverse().replace(/((?:\d{2})&bso ...