无法传递数据进行查看;错误:不包含(模型中的每个列字段)的定义 [英] Unable to pass data to view; Error: Does not contain a definition for (Each column field in model)

查看:84
本文介绍了无法传递数据进行查看;错误:不包含(模型中的每个列字段)的定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试显示一个显示新泽西州所有工作单的视图. 这是我的工作订单模型:

I am trying to have a view that shows all work orders in the state of New Jersey. This is my work order model:

 public class WorkOrder
 { 
    public int UserId { get; set; }
    public string LocationId { get; set; }
    public string Reason { get; set; }
    public bool IsActive { get; set; } = true;
    public DateTime Date { get; set; } = DateTime.Now;
    public string StateId { get; set; } 
   }

在我试图传递我所拥有的数据的视图中:

In my View where I am trying to pass the data I have:

@model IEnumerable<WorkOrder>
@{
     ViewData["Title"] = "Work Orders";
 }
 <div class="by-location">
    <h1>By Location</h1>
   <ul>
       <li> @Html.ActionLink("Delaware", "Delaware", 
        "HomeController")</li>
       <li>
        @Html.ActionLink("New Jersey", "New Jersey", 
        "HomeController")
       </li>
       <li>
         @Html.ActionLink("Pennsylvania", "Pennsylvania", 
        "HomeController")
    </li>
  </ul>
</div>
<div class="container">
 <table class="table">
    <tr>
      <th>
        @Html.DisplayNameFor(model => model.UserId)
      </th>
      <th>
        @Html.DisplayNameFor(model => model.LocationId)
      </th>
      <th>
        @Html.DisplayNameFor(model => model.Reason)
      </th>
      <th>
        @Html.DisplayNameFor(model => model.IsActive)
      </th>
      <th>
        @Html.DisplayNameFor(model => model.Date)
      </th>
    </tr>
 @foreach (var item in Model)
 {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.UserId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.LocationId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Reason)
        </td>
        <td>

            @Html.DisplayFor(modelItem => item.IsActive)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Date)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StateId)
        </td>
     </tr>
    }
    </table>
  </div>

我仅尝试显示位置等于"NJ"的数据,因此我在Controller中有一个要在Controller中调用的方法,该方法应该返回View for New Jersey工作订单,但所有方法都具有在状态=某物的情况下获取工作命令的逻辑.

I am only trying to display the data where the location is equal to "NJ" so I have a method in my Controller that I am calling in my Controller that is supposed to return the View for New Jersey work orders but all has the logic for Getting work orders where the State = something.

   public IActionResult Nj(string stateId)
   {
       var njWorkOrders = GetWorkOrders()
          .Where(x => x.StateId == stateId).ToList(); 
       return View(njWorkOrders); 
   }

这是我的GetWorkOrders函数:

Here is my GetWorkOrders function:

  public List<WorkOrder> GetWorkOrders()
  {
      List<WorkOrder> workOrders = new List<WorkOrder>();
      workOrders.Add(new WorkOrder
      {
          UserId = 1,
          LocationId ="Philadelphia",
          Date = DateTime.Now,
          Reason = "Lights",
          IsActive = true,
          StateId = "PA"
      });

      workOrders.Add(new WorkOrder
      {
          UserId = 2,
          LocationId = "Camden",
          Date = DateTime.MinValue,
          Reason = "Plumbing",
          IsActive = true,
           StateId = "NJ"
      });
      workOrders.Add(new WorkOrder
      {
          UserId = 3,
          LocationId = "Burlington",
          Date = DateTime.Now,
          Reason = "Water",
          IsActive = false,
          StateId = "NJ"
      });

      workOrders.Add(new WorkOrder
      {
          UserId = 4,
          LocationId ="Wilmington",
          Date = DateTime.MaxValue,
          Reason = "Lights",
          IsActive = true,
          StateId = "DE"
      });

      // return the work orders to be used by your view methods
     return workOrders;
  }

推荐答案

几件事:

  • 您无法返回IActionResult.您必须返回 ActionResult .

由于控制器操作需要一个参数,因此必须在查询字符串中传递stateId,如下所示

Since your controller action is expecting an argument, you have to pass the stateId in query string like below

http://localhost:52023/Home/Nj?stateId = NJ

这篇关于无法传递数据进行查看;错误:不包含(模型中的每个列字段)的定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆