2010-11-10 6 views
7

Я получаю сообщение об ошибке при использовании помощников бритвы в проекте MVC 3 (поместил файл cshtml в app_code). Похоже, что сгенерированный код использует неправильную ссылку на сборку.Помощник Razor в MVC 3 RC

с помощью WebMatrix.Data;
с использованием WebMatrix.WebData;

Компилятор говорит:

CS0246: тип или пространство имен имя «WebMatrix» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)

Положив их в GAC ничего не изменится , Разве я не понимаю? Или это ошибка? Есть идеи?

ответ

5

Вам нужно добавить ссылку на DLL в Web.config.

+0

Правильно! спасибо. почему я не считаю это ... уже слишком поздно? – mbr

+0

BTW, если вы не используете WebMatrix.Data и WebMatrix.WebData, тогда ответ Марцина сделает так, что вам не нужно включать ненужные двоичные файлы. – Haacked

+0

Thanx Phil ... Продолжайте делать отличную работу. – mbr

5

mbr, мы знаем о проблеме и планируем обратиться к ней за RTM. Вы можете либо добавить ссылки на WebMatrix сборки, как SLaks предложенного или (и я думаю, что это лучше) просто добавить эти 2 пространств имен к вашему проекту, добавив следующий код:

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
+1

спасибо marcind. – mbr

+1

"CS1527: Элементы, определенные в пространстве имен, не могут быть явно объявлены как закрытые, защищенные или защищенные внутренние." Оставьте «частные» от этих деклараций классов, и он отлично работает. –

+0

А, еще лучше. Мне это нравится сейчас. –

2

Я столкнулся с этой проблемой, и были помогли этим ответом. И затем я столкнулся с другой проблемой, когда начал пытаться использовать Telerik, этот ответ: Razor HtmlHelper Extensions (or other namespaces for views) Not Found указал мне на другое решение этой проблемы.

0

Поместите код в файл (я выбрал Fixup.cs) как и в каталоге App_Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
0

вам просто нужно добавить WebMatrix.WebData.dll ваших ссылок.

0

Возможно, ссылки на файлы DLL могут быть сложными, если вы не знаете точное местоположение файлов DLL или файлы DLL имеют какие-либо зависимости. Используйте диспетчер пакетов для автоматической привязки ссылок для вас.

Просто открытые инструменты-> Менеджер пакетов библиотеки-> Консоль диспетчера пакетов в Visual Studio & в окне консоли диспетчера пакетов «Install-Package WebMatrix.Data» и все готово. Ссылка:

http://www.nuget.org/packages/WebMatrix.Data/