Mungkin ini bukan pendekatan yang tepat. Mempertimbangkan pemisahan kekhawatiran. Anda harus memiliki data injectordi JavaScriptkelas Anda dan yang dalam banyak kasus adalah data JSON.
Buat file JS di scriptfolder Anda dan tambahkan referensi ini keView
<script src="@Url.Content("~/Scripts/yourJsFile.js")" type="text/javascript"></script>
Sekarang, pertimbangkan JavaScriptkelas literal di yourJsFile.js:
var contentSetter = {
allData: {},
loadData: function (data) {
contentSetter.allData = eval('(' + data + ')');
},
setContentA: function () {
$("#contentA").html(allData.contentAData);
},
setContentB: function () {
$("#contentB").html(allData.contentAData);
}
};
Juga nyatakan sebuah kelas
public class ContentData
{
public string ContentDataA { get; set }
public string ContentDataB { get; set }
}
Sekarang, dari Anda Actionlakukan ini:
public ActionResult Index() {
var contentData = new ContentData();
contentData.ContentDataA = "Hello";
contentData.ContentDataB = "World";
ViewData.Add("contentData", contentData);
}
Dan dari pandangan Anda:
<div id="contentA"></div>
<div id="contentB"></div>
<script type="text/javascript">
contentSetter.loadData('@Json.Encode((ContentData) ViewData["contentData"])');
contentSetter.setContentA();
contentSetter.setContentB();
</script>