Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将对象列表从控制器传递到视图?_C#_List_Vue.js_Model View Controller_Datacontract - Fatal编程技术网

C# 如何将对象列表从控制器传递到视图?

C# 如何将对象列表从控制器传递到视图?,c#,list,vue.js,model-view-controller,datacontract,C#,List,Vue.js,Model View Controller,Datacontract,我的控制器中有一些数据(数据契约列表)。我想在视图中显示该列表的字段/值。我如何正确地做到这一点 这是控制器中的代码,我从中获取列表数据: public List<ShipmentDataContract> Get(long shipmentServiceId) { Logging.Instance.Info($"Shipment request came in for shipment with ShipmentServiceId = {sh

我的控制器中有一些数据(数据契约列表)。我想在视图中显示该列表的字段/值。我如何正确地做到这一点

这是控制器中的代码,我从中获取列表数据:

public List<ShipmentDataContract> Get(long shipmentServiceId)
        {
            Logging.Instance.Info($"Shipment request came in for shipment with ShipmentServiceId = {shipmentServiceId}");
            ShipmentQueryResult shipmentQueryResult = GetShipmentByShipmentServiceIdResult(shipmentServiceId);
            Logging.Instance.Debug($"Shipment queried with ShipmentServiceId = {shipmentServiceId}");
            List<ShipmentDataContract> shipmentDataContracts = GetShipmentsFromResult(shipmentQueryResult);
            Logging.Instance.Info($"Shipment retrieved for shipment with ShipmentServiceId = {shipmentServiceId}.");
            return shipmentDataContracts;
        }
当我调试后端时,它返回正确的装运(ID为94)

现在我想在视图中显示装运信息

在我看来,我做了一个变数:

<script>
    var shipmentTestData = '@ViewBag.shipmentTestData';
</script>
当我调用数据时,它不会显示值,而是一个通用字符串

<p>{{ shipmentTestData }}</p>

有人知道怎么修理这个吗?由于某种原因,我分配的变量是字符串格式,这导致了我假设的这个问题,但是我如何解决这个问题呢?

如果你想将列表用作字符串,你可以发送如下结果

 IList<string> someStrings = Get(94); // i assume than get method returns a list of "strings"
 string joined = string.Join(",", someStrings );
 ViewBag.shipmentTestData = joined;
IList someStrings=Get(94);//我假设than get方法返回一个“字符串”列表
连接字符串=string.Join(“,”,someStrings);
ViewBag.shipmentTestData=已连接;
现在,您要将列表“shipmentDataTest”作为逗号分隔的列表发送到frotend。
让我知道这是否是你要找的。问候语。

如果要将列表用作字符串,可以发送如下结果

 IList<string> someStrings = Get(94); // i assume than get method returns a list of "strings"
 string joined = string.Join(",", someStrings );
 ViewBag.shipmentTestData = joined;
IList someStrings=Get(94);//我假设than get方法返回一个“字符串”列表
连接字符串=string.Join(“,”,someStrings);
ViewBag.shipmentTestData=已连接;
现在,您要将列表“shipmentDataTest”作为逗号分隔的列表发送到frotend。
让我知道这是否是你要找的。问候。

这是正确的方式

型号:

   public class ShipmentData
   {
       Task<List<ShipmentDataContract>> Get(long shipmentServiceId)
       {
          return YourList;
       }
视图:


这是正确的方法

型号:

   public class ShipmentData
   {
       Task<List<ShipmentDataContract>> Get(long shipmentServiceId)
       {
          return YourList;
       }
视图:



就在这一行
var shipmentTestData='@ViewBag.shipmentTestData'
shipmentTestData
var设置为要返回的列表,然后尝试将其用作字符串,这样就可以获得列表的
.ToString()
值,即它的类型。如果你想显示列表中的项目,你需要迭代它们并在视图中显示属性。嘿,谢谢你的回复。我注意到了,但是我该怎么做呢?因为我正在使用razor在视图中显示它。找不到实现这一点的方法…您可以跳过将其设置为javascript变量,在视图中使用Razor迭代列表并填充HTML。这篇文章展示了如何将
Razor
ViewBag
一起使用(),但我可以;你不能正确使用它吗?你能给我提供一个示例代码片段吗?你什么意思,不能访问它??除了向用户显示此数据之外,您还想完成什么?就在这一行
var shipmentTestData='@ViewBag.shipmentTestData'
shipmentTestData
var设置为要返回的列表,然后尝试将其用作字符串,这样就可以获得列表的
.ToString()
值,即它的类型。如果你想显示列表中的项目,你需要迭代它们并在视图中显示属性。嘿,谢谢你的回复。我注意到了,但是我该怎么做呢?因为我正在使用razor在视图中显示它。找不到实现这一点的方法…您可以跳过将其设置为javascript变量,在视图中使用Razor迭代列表并填充HTML。这篇文章展示了如何将
Razor
ViewBag
一起使用(),但我可以;你不能正确使用它吗?你能给我提供一个示例代码片段吗?你什么意思,不能访问它??除了向用户显示这些数据之外,您还想完成什么?嘿,谢谢您的回复。我实际上得到了一份数据合同清单。因此,您可以尝试使用JsonConvert.SerializeObject(dataContracts),并返回一个json字符串,以便在cshtml中使用javascript进行操作。对于这个JsonConvert方法,我使用Newtonsoft.Json.10.0.3Hey,感谢您的回复。我实际上得到了一份数据合同清单。因此,您可以尝试使用JsonConvert.SerializeObject(dataContracts),并返回一个json字符串,以便在cshtml中使用javascript进行操作。对于此JsonConvert方法,我使用Newtonsoft.Json.10.0.3,但此解决方案不适用于我,因为我需要在模板文件中而不是在主视图文件中加载数据。我能够在那里加载数据,并且工作正常。但是这里的问题是模板文件,您确定返回的是正确的吗?显示
returnshipmentdatacontractsGet
函数中选择code>。不应该是
returnshipmentdatacontracts[shipmentServiceId]如果要返回特定对象?否则你会得到你所描述的,一个列表。它必须是一个列表是的。。返回一个也不起作用。问题是我只能在主视图文件的列表中加载对象,而不能在模板文件中加载。。我正在寻找一种方法来获取get方法在我的视图中返回的完整对象以供使用。。现在我有一个字符串,它是错误的数据类型,但是这个解决方案不适合我,因为我需要在模板文件中而不是在主视图文件中加载数据。我能够在那里加载数据,并且工作正常。但是这里的问题是模板文件,您确定返回的是正确的吗?显示
returnshipmentdatacontractsGet
函数中选择code>。不应该是
returnshipmentdatacontracts[shipmentServiceId]如果要返回特定对象?否则你会得到你所描述的,一个列表。它必须是一个列表是的。。返回一个也不起作用。问题是我只能在主视图文件的列表中加载对象,而不能在模板文件中加载。。我正在寻找一种方法来获取get方法在我的视图中返回的完整对象以供使用。。现在我有一个字符串,它是错误的数据类型
   public class ShipmentData
   {
       Task<List<ShipmentDataContract>> Get(long shipmentServiceId)
       {
          return YourList;
       }
  public ActionResult Index()
    {
        var shipmentDataTest = ShipmentData.Get(//index);

        return View(shipmentDataTest);
    }
    @Model YourShipmentModel
    //here you can call Model.variable