Wahrscheinlich ist dies nicht der richtige Ansatz. Berücksichtigung der Trennung von Bedenken. Sie sollten eine data injector
in Ihrer JavaScript
Klasse haben und das sind in den meisten Fällen Daten JSON
.
Erstellen Sie eine JS-Datei in Ihrem script
Ordner und fügen Sie diesen Verweis zu Ihrem hinzuView
<script src="@Url.Content("~/Scripts/yourJsFile.js")" type="text/javascript"></script>
Betrachten Sie nun eine JavaScript
wörtliche Klasse in Ihrem yourJsFile.js
:
var contentSetter = {
allData: {},
loadData: function (data) {
contentSetter.allData = eval('(' + data + ')');
},
setContentA: function () {
$("#contentA").html(allData.contentAData);
},
setContentB: function () {
$("#contentB").html(allData.contentAData);
}
};
Deklarieren Sie auch eine Klasse
public class ContentData
{
public string ContentDataA { get; set }
public string ContentDataB { get; set }
}
Nun, von Ihnen aus Action
tun Sie dies:
public ActionResult Index() {
var contentData = new ContentData();
contentData.ContentDataA = "Hello";
contentData.ContentDataB = "World";
ViewData.Add("contentData", contentData);
}
Und aus Ihrer Sicht:
<div id="contentA"></div>
<div id="contentB"></div>
<script type="text/javascript">
contentSetter.loadData('@Json.Encode((ContentData) ViewData["contentData"])');
contentSetter.setContentA();
contentSetter.setContentB();
</script>