Laden...

MVC - Datenübergabe C# - JavaScript

Erstellt von TinaQ vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.794 Views
T
TinaQ Themenstarter:in
166 Beiträge seit 2008
vor 13 Jahren
MVC - Datenübergabe C# - JavaScript

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

M
402 Beiträge seit 2005
vor 13 Jahren

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

lg

C
24 Beiträge seit 2009
vor 13 Jahren

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

N
4.644 Beiträge seit 2004
vor 13 Jahren

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>
T
TinaQ Themenstarter:in
166 Beiträge seit 2008
vor 13 Jahren

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