Có lẽ đây không phải là cách tiếp cận đúng. Cân nhắc tách rời các mối quan tâm. Bạn nên có một data injectortrên JavaScriptlớp của mình và trong hầu hết các trường hợp là dữ liệu JSON.
Tạo một tệp JS trong scriptthư mục của bạn và thêm tham chiếu này vàoView
<script src="@Url.Content("~/Scripts/yourJsFile.js")" type="text/javascript"></script>
Bây giờ, hãy xem xét một JavaScriptlớp chữ trong yourJsFile.js:
var contentSetter = {
allData: {},
loadData: function (data) {
contentSetter.allData = eval('(' + data + ')');
},
setContentA: function () {
$("#contentA").html(allData.contentAData);
},
setContentB: function () {
$("#contentB").html(allData.contentAData);
}
};
Cũng khai báo một lớp
public class ContentData
{
public string ContentDataA { get; set }
public string ContentDataB { get; set }
}
Bây giờ, từ bạn Actionlàm điều này:
public ActionResult Index() {
var contentData = new ContentData();
contentData.ContentDataA = "Hello";
contentData.ContentDataB = "World";
ViewData.Add("contentData", contentData);
}
Và theo quan điểm của bạn:
<div id="contentA"></div>
<div id="contentB"></div>
<script type="text/javascript">
contentSetter.loadData('@Json.Encode((ContentData) ViewData["contentData"])');
contentSetter.setContentA();
contentSetter.setContentB();
</script>