Имя не существует в текущем контексте - Ошибка контроллера - PullRequest
0 голосов
/ 01 октября 2018

Я следую простому учебнику, но, похоже, есть проблемы с версией.Когда я пытаюсь скомпилировать приведенный ниже код в свой ProcessController.cs, я получаю, что в текущем контексте отсутствует ошибка.

ProcessController.cs

public ViewResult List() 
        {
            var processList = from p in Process.GetProcesses()
                              select p;

            ViewData.Model = processList.ToList();

            return View();
        }

List.cshtml

<ul>
    <% foreach(var process in this.Model) { %>

        <li><%= process.ProcessName %></li>

    <% } %>

</ul>

Global.asax.cs (внутри класса)

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Process",                                                  // Route name
                "{Process}/{action}/{id}",                                    // URL with parameters
                new { controller = "Process", action = "List", id = "" }    // Parameter defaults
            );
            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
        }

1 Ответ

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

ProcessController.cs

public class ProcessController : Controller
{
    // GET: Processes
    public ViewResult List()
    {
        var processList = from p in Process.GetProcesses()
                          select p;

        ViewData["Model"] = processList.ToList();

        return View();
    }
}

Представление (List.cshtml) использует синтаксис бритвы вместо aspx.Вот как вы можете реализовать эту функцию в синтаксисе Razor

@using System.Diagnostics;
<ul>
 @foreach(var process in ViewData["Model"] as IEnumerable<Process>) { 
  <li>@process.ProcessName</li>
 }
</ul>

Подробнее о синтаксисе бритвы:

https://docs.microsoft.com/en-us/aspnet/web-pages/overview/getting-started/introducing-razor-syntax-c

Вы должны добавить следующее, используя

using System.Diagnostics;
using System.Linq;
using System.Web.Mvc;

в списке используемых операторов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...