Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MVC - Datenübergabe C# - JavaScript
TinaQ
myCSharp.de - Member



Dabei seit:
Beiträge: 168

Themenstarter:

MVC - Datenübergabe C# - JavaScript

beantworten | zitieren | melden

Hallo,

bin mal wieder an einem Punkt angekommen an dem ich einfach nicht weiter komme.

Und zwar versuche ich eine eine ViewData (evtl. Session-Variable) in einem JavaSript auszulesen.

Doch werden beide nicht erkannt und es ist nicht möglich an die Werte zu kommen.

Wenn ich das gleiche ausserhalb des JavaScripts (auf dem gleichen View) versuche dann funtioniert das problemlos.
Was muss ich machen um die Werte in mein JavaScript zu bekommen und verarbeiten zu können.

Hat jemand eine Idee?

Tina
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

beantworten | zitieren | melden

Zeig mal den Code von dem View her,
ich weiss nämlich grad nicht was du genau tun möchtest...


lg
private Nachricht | Beiträge des Benutzers
Chris.B
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: Berlin

beantworten | zitieren | melden

ViewData, TempData und Session sind serverseitige Objekte. JavaScript läuft clientseitig. Dementsprechend kannst du vom Client aus nicht auf die serverseitigen Variablen zugreifen.

Du müsstest also einen Ajax-Request an deinen Controller senden und den dann wieder auswerten. Da du anscheinend nur Daten benötigst, wäre JSON angebracht.

Chris
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

ViewData geht so, aber für die Session musst musst Du ein Ajax-Request machen.

public ActionResult Index()
{
    ViewBag.Message = "Welcome to ASP.NET MVC!";
    return View();
}
<script type="text/javascript">
    $(function () {
        alert( '@ViewBag.Message' );
    });
</script>
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Noodles am .
private Nachricht | Beiträge des Benutzers
TinaQ
myCSharp.de - Member



Dabei seit:
Beiträge: 168

Themenstarter:

beantworten | zitieren | melden

Hallo,

erst mal vielen Dank für die Hilfestelllung. Leider habe ich es immer noch nicht hinbekommen.

Auch nachdem ich Versuchshalber den Code in den Controller und den View übernommen habe.
Fehlermeldung: Microsoft JScript runtime error: Object expected

<%@ Page Title="" Language="C#"  Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 
<!DOCTYPE html>
<html>
<head>
<title>Google Maps</title>

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    $(function () {
        alert('@ViewBag.Message');
    });
</script> 

<script type="text/javascript">
    function initialize() {
        var myLatlng = new google.maps.LatLng(93.3513676, 89.9757879);
        var myOptions = {
            zoom: 10,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }

        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        var marker = new google.maps.Marker({ position: myLatlng, map: map, title: "Hier soll ich sein?" });
    }
</script>
</head>

<body onload="initialize()">
<div id="map_canvas"></div> 
</bod<>
</html>

Die Werte für LatLng bekomme ich aus einer Excel-Tabelle, die Werte lese ich über C# aus - diese Werte benötige ich auch nich in anderen Klassen.


Aber ich bekomme sie immer noch nicht angezeigt. Ne Idee wie ich das ändern könnte?

Tina
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von TinaQ am .
private Nachricht | Beiträge des Benutzers