Возвращаемое поле с соответствующими идентификаторами (конкретный идентификатор) - PullRequest
0 голосов
/ 12 октября 2018

У меня есть страница с основными данными, которая, когда вы нажимаете кнопку просмотра сведений о запросе, заполняет данные в таблице ниже.Когда пользователь нажимает кнопку просмотра сведений о запросе, как я могу во второй таблице заполнить данные, имеющие соответствующие идентификаторы?Когда я перебираю сейчас, он находит идентификаторы, которые действительно совпадают, но они будут соответствовать всем, если я не смогу захватить идентификатор выбранного элемента и выполнить поиск, чтобы найти строки с таким же идентификатором.

Верхняя таблица - это запросы, а нижняя таблица - это детали запроса.

Это код в моем контроллере запросов, который извлекает данные из деталей запроса.Я нахожу идентификатор и пытаюсь сравнить его с выбранным элементом, но я все еще получаю все записи обратно.

 //Requests Controller 
public ActionResult Index(IA_RequestDetails iA_RequestDetails, IA_Requests iA_Requests, long? id = null)
{

    List<IA_Requests> requestList = db.IA_Requests.ToList();
    List<IA_RequestDetails> newRequestList = db.IA_RequestDetails.ToList();
    var model = new InventoryAnalysisMasterDetailsModel();
    model.RequestDetailsList = newRequestList;
    model.RequestList = requestList;

    if (id != null)
    {
        model.SelectedItems = newRequestList.Find(model => model.RequestId == id && model.SelectedItemsId == id);
        model.SelectedItemsId = id;         
    }

    return View(model);
}

На мой взгляд, я использую оператор foreach

foreach (var item in Model.RequestDetailsList)
{
    <tr>
        <td>
            @item.RequestId       
        </td>
        <td>
            @item.Item
        </td>
        <td>
            @item.LineID
        </td>
        <td>
            @Html.ActionLink("Edit Item", "Edit", new { id = item.LineID, controller = "IA_RequestDetails" }) |
            @Html.ActionLink("View Item Details", "Details", new { id = item.LineID, controller = "IA_RequestDetails" })
        </td>
    </tr>
}

Любая помощь очень ценится.Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Как первоначально предполагалось, пункт where - это то, что мне нужно.Вопрос был только в том, где и что я сделал: добавьте предложение where в оператор if.Довольно просто, для меня это было немного дразнилкой.

model.RequestDetailsList = newRequestList.Where(x => x.RequestId == model.SelectedItemsId).ToList();
0 голосов
/ 12 октября 2018

Я немного смущен этим вопросом, но хотел бы помочь.Find возвращает один элемент, поэтому SelectedItems немного сбивает с толку.

То, что вы хотите, это что-то вроде:

newRequestList.Where(model => model.RequestId == id && model.SelectedItemsId == id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...