Как получить данные из представления в контроллер, а затем перейти к новому представлению - PullRequest
0 голосов
/ 29 октября 2019

SUP всем! Вот в чем дело ... Я пытаюсь передать значения, полученные из представления, используя @ Html.ActionLink, в контроллер, а затем перейти в новое представление. Я приведу некоторые коды ниже для лучшего понимания.

Я попытался создать ViewModel с переменными, которые идентичны значениям, которые мне нужны, и в контроллере я пытаюсь передать значения из представления, используя перегрузку ActionResult дляинкапсулируйте класс ViewModel, поэтому, когда я пытаюсь показать, что эти результаты возвращаются в новое представление, он получает нулевое исключение. Я новичок в C #, если кто-то знает что-то еще лучше, что я мог бы использовать в этой ситуации, я бы очень признателен за помощь, спасибо!

часть моего взгляда со значениями, которые я хочу:

<ul>
            @foreach (var item in Model)
            {
                <li>@Html.ActionLink(item.Pedido + " - " + item.Status, "Index", "Pedidostatus", new { pedido = item.Pedido, status = item.Status }, null)</li>
            }
        </ul>

Мне нужно, чтобы только 'pedido' и 'status' были получены в контроллере Pedidostatus, поэтому я использую Html.ActionLink для передачи значений, как вы все можете видеть.

ViewModel, который я создал:

public class PedidosViewModel
    {
        public string PedidoVM { get; set; }
        public string StatusVM { get; set; }
    }

Контроллер, которому я хочу получить значения представлений (Pedidostatus):

using Status_Pedido_Venda.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Status_Pedido_Venda.Controllers
{
    public class PedidostatusController : Controller
    {
        // GET: Pedidostatus
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Show(string pedido, string status)
        {
            PedidosViewModel viewModel = new PedidosViewModel()
            {
                PedidoVM = pedido,
                StatusVM = status
            };


            return View("Index", viewModel);
        }
    }
}

Мой новый вид, в котором я хочу показать значения, полученные из первого представления через контроллер:

@model Status_Pedido_Venda.ViewModels.PedidosViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@if(Model.PedidoVM != null && Model.StatusVM != null)
{
    <h2>@Model.PedidoVM</h2>
    <h2>@Model.StatusVM</h2>
}

Я ожидал показать результаты, полученные при первом просмотре, в моем новом представлении.

1 Ответ

0 голосов
/ 29 октября 2019

Имя действия должно быть Показать не индекс

<li>@Html.ActionLink(item.Pedido + " - " + item.Status, "Show", "Pedidostatus", new { pedido = item.Pedido, status = item.Status }, null)</li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...