Laden...

MVC mit JQuery: Javascript den controller und die action bekannt machen.

Erstellt von slide vor 14 Jahren Letzter Beitrag vor 14 Jahren 869 Views
S
slide Themenstarter:in
49 Beiträge seit 2008
vor 14 Jahren
MVC mit JQuery: Javascript den controller und die action bekannt machen.

Hallo,
ich habe bei einer Seite ein Hilfesystem eingebaut, dass per Javascript(JQuery) ein Hilfefenster auf der Seite einblendet.
Um den entsprechenden Hilfetext anzuzeigen, dachte ich mir, es wäre das einfachste für jeden Controller (evtl. auch jede Kombination Controller/Action) eine Action anzulegen, welche den Hilfetext zurückgibt.
Jedoch weiss ich nicht, wie ich den controller und action namen dem Javascript bekannt mache.
Relative Urls gehen nicht, da server.de/ gleichzeitig auch server.de/Home und server.de/Home/Index entspricht. Direkt die Url an den Link zu übergeben, der das Fenster aufruft geht auch nicht, da die Funktion erst per JQuery mit $().toggle hinzugefügt wird.

Hat einer eine Idee? Oder gibt es sowieso eine bessere Möglichkeit, auf jeder Seite ein mögliches Hilfefenster anzuzeigen?

Vielen Dank,
slide

270 Beiträge seit 2005
vor 14 Jahren

Hallo slide,

warum schreibst du nicht ein UserControlView für das JavaScript das dann ein Model mit
den RouteData zu dem Controller\Action enthält. Die übergeordneten Views (und deren Models) würde ich dann erweitern so dass diese die Informationen(Sub-Model) durch reichen können.

mfg Hulk

16.835 Beiträge seit 2008
vor 14 Jahren

Hi,

ich habe ein ähnliches Verhalten in meiner WebApplikation.
Ich habe Controller, die mir die ActionResults zurück geben und welche, die mir einzelne XDocument-Elemente zurück geben, die ich per AJAX-Anfragen abrufe und in einem modalen Dialog anzeige.

Was Du beachten musst:* Der Response-Type musst auf "text/xml" gesetzt werden, ansonsten erkennt es jQuery nicht als XML-Doc an.

  • Auf der C#-Seite kodierst Du Dein HTML-Zeugs ( Hilfstext etc ) per Uri.EscapeDataString() und setzt es in eine XML-Node. Zum Anzeigen des HTML-Contents liest Du die Node aus und mittels unescape() bekommst Du den reinen HTML-Code wieder.

Das wars auch schon.

Grüße