อาจไม่ใช่แนวทางที่ถูกต้อง พิจารณาแยกความกังวล คุณควรมีdata injector
ในJavaScript
ชั้นเรียนของคุณและในกรณีส่วนใหญ่ข้อมูลคือJSON
ชั้นและที่เป็นในกรณีส่วนใหญ่ข้อมูล
สร้างไฟล์ JS ในscript
โฟลเดอร์ของคุณและเพิ่มการอ้างอิงนี้ในไฟล์View
<script src="@Url.Content("~/Scripts/yourJsFile.js")" type="text/javascript"></script>
ตอนนี้ให้พิจารณาไฟล์ JavaScript
คลาสตามตัวอักษรในyourJsFile.js
:
var contentSetter = {
allData: {},
loadData: function (data) {
contentSetter.allData = eval('(' + data + ')');
},
setContentA: function () {
$("#contentA").html(allData.contentAData);
},
setContentB: function () {
$("#contentB").html(allData.contentAData);
}
};
ประกาศคลาสด้วย
public class ContentData
{
public string ContentDataA { get; set }
public string ContentDataB { get; set }
}
ตอนนี้จากไฟล์ Action
ทำสิ่งนี้:
public ActionResult Index() {
var contentData = new ContentData();
contentData.ContentDataA = "Hello";
contentData.ContentDataB = "World";
ViewData.Add("contentData", contentData);
}
และจากมุมมองของคุณ:
<div id="contentA"></div>
<div id="contentB"></div>
<script type="text/javascript">
contentSetter.loadData('@Json.Encode((ContentData) ViewData["contentData"])');
contentSetter.setContentA();
contentSetter.setContentB();
</script>