javascript - 在 javascript 代码中使用 ASP.net 模型。除了使用 <text> 之外还有其他方法吗?

标签 javascript asp.net razor razor-pages

我目前正在从我的 Controller 获取一些数据,我正在我的 cshtml 文件中使用这些数据。 从技术上讲,此数据仅需要由 javascript 使用。所以我这样做

    $(document).ready(function () {

    var responses = [];

    @foreach (var logItem in @Model.items)
    {
        <text>
        action = '@Html.Raw(@logItem.ActionString)';   
        actions.push(action);  
        </text>
    }

   SomeJSFunciton(actions);
});

上面解决了问题,但是有两个问题

  1. 所有这些的文本都写在 $(document).ready函数
  2. 我想调用一个 js 函数 在将其插入数组之前执行操作。我不知道该怎么做 那个?

关于实现此目标的最佳方法有什么建议吗?

最佳答案

随着复杂性的增加,像这样混合代码会变得很痛苦。我幸运的是将服务器数据编码成 JSON,如下所示:

var myServerData = @Html.Raw(Json.Encode(myServerData));

通过这种方式,您将拥有 JSON 格式的服务器数据,并且您将能够用 JavaScript 编写所有代码。所以你的代码会变成:

for(var i = 0; i < myServerData.length; i++){
    action = myServerData[i]['ActionString'];
    // Here would be where you would call your function before inserting into array
    actions.push(action);
}
SomeJsFunctions(actions);

关于javascript - 在 javascript 代码中使用 ASP.net 模型。除了使用 <text> 之外还有其他方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58244246/

相关文章:

javascript - D3js - 单个外部 SVG 文件的多个实例

javascript - 如何使用 jquery 延迟对象检查元素是否在 DOM 中?

c# - 在 MVC 4 中传递对象

c# - DateTime.TryParse 似乎正在丢失原始时区信息并转换为服务器时间

.net - RazorEngine - 如果仅在 View 中使用,则不会加载引用的程序集

c# - MVC 4 Ajax.Action 链接不起作用

javascript - session 存储和性能

javascript - Google map 不会在页面加载时加载

c# - System.Web.UI.Page 类中的事件和虚拟方法

javascript - 日期时间选择器不工作