Я новичок в asp.net mvc 2.
Я пытаюсь перечислить все данные из одной таблицы (таблица сервера MS SQL). В качестве ORM я использую Entity Framework. Теперь я попытался написать что-то для этого:
Модель:
private uqsEntities _uqsEntity;
public permissionRepository(uqsEntities uqsEntity)
{
_uqsEntity = uqsEntity;
}
public string getUserID()
{
return _uqsEntity.userPermissions.FirstOrDefault().ID.ToString();
}
контроллер:
private DataManager _dataManager;
public HomeController(DataManager datamanager)
{
_dataManager = datamanager;
}
public ActionResult Index()
{
ViewData["Message"] = _dataManager.Permission.getUserID();
return View();
}
View
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
когда я запускаю приложение. Мое приложение. терпит неудачу.
Не определен конструктор без параметров
для этого объекта. Описание: Ан
необработанное исключение произошло во время
выполнение текущей сети
запрос. Пожалуйста, просмотрите трассировку стека
для получения дополнительной информации об ошибке
и откуда оно взято в коде.
Сведения об исключении:
System.MissingMethodException: нет
конструктор без параметров, определенный для
этот объект.
Ошибка источника:
Создано необработанное исключение
во время исполнения текущего
веб-запрос. Информация относительно
Происхождение и место исключения
можно определить с помощью исключения
трассировка стека ниже.
Трассировка стека:
[MissingMethodException: нет
конструктор без параметров, определенный для
этот объект.]
System.RuntimeTypeHandle.CreateInstance (RuntimeType
тип, логическое publicOnly, логическое
noCheck, Boolean & canBeCached,
RuntimeMethodHandle & ctor, Boolean &
bNeedSecurityCheck) + 0
System.RuntimeType.CreateInstanceSlow (Boolean
publicOnly, Boolean fillCache) + 86
System.RuntimeType.CreateInstanceImpl (Boolean
publicOnly, логическое
skipVisibilityChecks, Boolean
fillCache) + 230
System.Activator.CreateInstance (Тип
тип, логическое непубличное значение) + 67
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext
requestContext, Type controllerType)
+ 80
[InvalidOperationException: ошибка
произошло при попытке создать
контроллер типа
'Uqs.Controllers.HomeController. Делать
уверен, что контроллер имеет
открытый конструктор без параметров.]
System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext
requestContext, Type controllerType)
+190 System.Web.Mvc.DefaultControllerFactory.CreateController (RequestContext
requestContext, String controllerName)
+68 System.Web.Mvc.MvcHandler.ProcessRequestInit (HttpContextBase
httpContext, IController & controller,
IControllerFactory & factory) + 118
System.Web.Mvc.MvcHandler.BeginProcessRequest (HttpContextBase
httpContext, обратный вызов AsyncCallback,
Состояние объекта) + 46
System.Web.Mvc.MvcHandler.BeginProcessRequest (HttpContext
httpContext, обратный вызов AsyncCallback,
Состояние объекта) + 63
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest (HttpContext
контекст, AsyncCallback cb, Object
дополнительные данные) + 13
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
+8679186 System.Web.HttpApplication.ExecuteStep (IExecutionStep
шаг, логическое и завершено синхронно)
+ 155
Информация о версии: Microsoft .NET
Версия Framework: 2.0.50727.4200;
ASP.NET версия: 2.0.50727.4016
пожалуйста, кто-нибудь, помогите мне уловить проблему.
Другие классы:
DataManager.cs
public class DataManager
{
private uqsEntities _entity;
public DataManager(string connectionString)
{
this._entity = new uqsEntities(connectionString);
}
private permissionRepository _permissionsRepository;
public permissionRepository Permission
{
get
{
if (_permissionsRepository == null)
_permissionsRepository = new permissionRepository(_entity);
return _permissionsRepository;
}
}
}
ControllerFactory.cs
public class ControllerFactory : DefaultControllerFactory
{
public Type controllerType { get; set; }
public ControllerFactory()
{
}
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
base.GetControllerInstance(requestContext, controllerType);
string connectionString = ConfigurationManager.ConnectionStrings["uqsEntities"].ConnectionString;
return Activator.CreateInstance(controllerType, new DataManager(connectionString)) as IController;
}
}