将C#模型从View传递到Javascript

Ser*_*gio 1 javascript c# asp.net-mvc model razor

我将此ViewModel传递给我的视图:

  public class DashboardViewModel
  {
    public List<UserTask> UserTasks {get; set;}

    public List<WorkItem> WorkItems {get; set;}
  }    
Run Code Online (Sandbox Code Playgroud)

从视图中,我像这样遍历WorkItems:

 @foreach (var item in Model.WorkItems)
 {
    @item.Name
    @item.HoursLogged
    <button value="@item">UPDATE</button>
 }
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,jQuery函数正在打开模式。

我需要将该项目传递给模式,以显示所有项目信息。

这是javascript函数:

$(buttonEl).click(function () {
   //code to open modal
   var item = this.value;
});
Run Code Online (Sandbox Code Playgroud)

在“ this.value”中传递的值不是对象,而是带有WorkItem命名空间的字符串。

我也尝试使用内联onclick函数:

<button onclick="openModal('@item')">UPDATE</button>
Run Code Online (Sandbox Code Playgroud)

但结果相同。

任何的想法?

小智 6

我通常使用它来将MVC转换为javascript!

@Html.Raw(Json.Encode(item))
Run Code Online (Sandbox Code Playgroud)