首页 > 解决方案 > viewmodel 参数转换为 json 用于 ajax 请求

问题描述

在我的Net Core 2.1 MVC项目中,我有一个视图模型参数 userID,我想在页面加载后将其分配给一个 JQuery 变量。ID 不会显示在页面的任何位置。到目前为止,这似乎不起作用:

看法:

@{int userID = Model.ID;}
// rest of html page.
@section scripts {
    <script src="~/AssigntoVariable.js"></script>
}

分配变量.js

$(document).ready(function () {
    $(function () {
        var json = userID;
        console.log(json);
        // removed further code

当我运行它时,显然会收到“未定义用户 ID”错误。如何将我的 viewmodel 中的 userID 参数直接放在 JQuery 脚本中?

标签: c#jqueryrazorasp.net-core-2.1

解决方案


您可以在客户端访问 viewmodel 参数ID,例如:userID

@section scripts {    
    <script type="text/javascript">
        var userID = @(Html.Raw(Json.Encode(Model.ID))); 

        // You can now access userID here
        console.log(userID);
    </script>
    <script src="~/AssigntoVariable.js"></script>
}

现在您还可以userID访问AssignToVariable.js

$(document).ready(function () {
   var json = userID;
   console.log(json);
});

请注意,您不需要使用

$(document).ready(function () {
    $(function () {

它们都在AssignToVariable.js文件中,$(function () {只是$(document).ready(function () {. 请使用其中之一。


推荐阅读