Я использую следующую структуру, где я использовал следующую структуру базового класса для реализации представления.
public class Entity1Controller : ClassHelper<Entity1, Enitty1ViewModel>
{
public Entity1Controller(IObject obj1<Entity1>, IObject1 obj2)
{
}
}
public abstract class ClassHelper<TEntity>, TEntityViewModel> : ClassUtility<TEntity, TEntityViewModel>
{
public readonly IObject obj1<TEntity>;
public readonly IObject1 obj2
public ClassHelper(IObject obj1<TEntity>, IObject1 obj2)
{
this.obj1 = obj1;
this.obj2 = obj2;
}
}
public class ClassUtility<TEntity, TEntityViewModel> : Controller
{
public readonly IObject obj1<TEntity>;
public readonly IObject1 obj2
public ClassHelper(IObject obj1<Entity1>, IObject1 obj2)
{
this.obj1 = obj1;
this.obj2 = obj2;
}
public ActionResult Index()
{
return View();
}
[Route("Add")]
[Route("Edit/{id:int:min(1)}")]
public ActionResult AddorEditEntity(int id = 0)
{
if (id > 0)
{
//some code and get the entity
return PartialView("_AddorEditPartial", entity);
}
return PartialView("_AddorEditPartial", new TEntityViewModel());
}
//Other Methods
}
Веб-страница по адресу www.localhost.com/Entity1 дает результат представления индекса [как и должно быть], но когда я пытался найти URL с атрибутом маршрутизации, например. www.localhost.com/Entity1/Add
или www.localhost.com/Entity1/Edit/1
или www.localhost.com/Entity1/GetAll
, как и другие методы. Они не пропускают никаких результатов.
Если я использую условную маршрутизацию в своем адресе [вместо www.localhost.com/Entity1/Add
, используя www.localhost.com/Entity1/AddorEditEntity
], это приложение отображает представление и показывает веб-результат.
Если я определяю те же методы непосредственно из Контроллера, т.е. используя наследование Контроллера напрямую в Entity1Controller
[например, public class Entity1Controller : Controller
, вместо базовой модели наследования, показанной выше], файл маршрутизации атрибута работает без заминки.
Я попытался прогуглить его, и узнал, в состоянии DefaultDirectRouteProvider
, но это работает только для ApiController
. Я хочу использовать то же самое в приложении MVC [т.е. Controller
].
так что когда я обращаюсь к методу AddorEditEntity по адресу www.localhost.com/Entity1/Add
, он должен отобразить представление.
Пожалуйста, сообщите, возможно ли это.