Что файл/структура каталогов представления должен быть в ASP.NET MVC?

Когда BCP обрабатывает файл без ошибок, и вы получаете 0 строк, это обычно означает, что BCP не нашел разделитель, который ему было сказано искать. Он искал и обыскивал весь файл и не нашел цепочку разделителя, которую вы указали в файле формата (или что он использует по умолчанию).

Как сказал Роджер, файл выглядит как разделитель табуляции, но в вашем файле формата указан первый столбец с разделителем-запятой.

Таким образом, BCP читает байты за байтом и никогда не находит запятую, пока не достигнет конца файла ... так что нет данных для загрузки. BCP успешно запущен, и у вас нет загруженных строк.

8
задан tereško 13 July 2012 в 07:48
поделиться

2 ответа

Именование каталога представления и именование файла важны, потому что платформа MVC ASP.NET делает определенные предположения о них. Если Вы не соответствуете этим предположениям, то необходимо написать код для уведомления платформы, что Вы делаете. Вообще говоря, необходимо соответствовать этим предположениям, если у Вас нет серьезного основания не к.

Давайте посмотрим на самое простое действие контроллера:

    public ActionResult NotAuthorized()
    {
        return View();
    }

Поскольку никакое имя представления не было указано в вызове для Просмотра (), платформа предположит, что имя файла представления совпадет с именем Действия. Платформа имеет тип под названием ViewEngine, который предоставит расширение. ViewEngine по умолчанию является WebFormViewEngine, который возьмет то имя и добавит .aspx к нему. Таким образом, полное имя файла в этом случае было бы NotAuthorized.aspx.

Но в которой папке будет найден файл? Снова, ViewEngine предоставляет ту информацию. С WebFormViewEngine это посмотрит в двух папках: ~/Views/Shared и ~/Views/{контроллер}

Таким образом, если бы Ваш контроллер назвали AccountController, то это посмотрело бы в ~/Views/Account

Но могли бы быть времена, когда Вы не хотите следовать этим правилам. Например, два различных действия могли бы возвратить то же представление (с другой моделью или чем-то). В этом случае, если Вы указываете имя представления явно в Вашем действии:

    public ActionResult NotAuthorized()
    {
        return View("Foo");
    }

Обратите внимание, что с WebFormViewEngine, "имя представления" обычно является тем же как именем файла, меньше расширение, но платформа не требует платформы других механизмов представления.

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

7
ответ дан 5 December 2019 в 19:04
поделиться

В отношении ожидаемых названий представлений я думаю, что это - одна из тех вещей, которые каждый проект или организация попытаются стандартизировать.

Когда Вы подсказали в Вашем вопросе, возможно, что некоторые из этих Представлений (или более точно, Действия, которые представляют их) становятся популярными через плату, как, например, те ниже этого распространены в приложениях RoR, которые принимают остальных парадигма:

  • /orders/(т.е. индекс)
  • /orders/show/123
  • /orders/edit/123
  • /orders/update/123
  • /orders/new
  • /orders/create
  • /orders/destroy/123

Выбор/стандартизация Представлений в основном зависит от того, как Вы моделируете свое приложение (для высказывания очевидного) и как мелкомодульный Вы хотите пойти. Чем ближе Вы отображаете свои контроллеры на отдельные образцовые классы (кашель... ресурсы... кашляют), тем короче Ваши действия будут иметь тенденцию быть, и более легко Вы сможете следовать за стандартным набором действий (как в вышеупомянутом примере).

Я также полагаю, что более короткая справка действий, продвигая все больше образцовой бизнес-логики в сами модели, где она принадлежит.

2
ответ дан 5 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: