我正在使用以下结构,其中我使用以下基类结构来实现视图。
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
or www.localhost.com/Entity1/Edit/1
or www.localhost.com/Entity1/GetAll
and so 其他方法,它们不会省略任何结果。
如果我在我的地址中使用约定路由 [而不是www.localhost.com/Entity1/Add
使用www.localhost.com/Entity1/AddorEditEntity
],此应用程序会呈现视图并显示 Web 结果。
如果我直接从 Controller 定义相同的方法,即使用继承 Controller 直接到Entity1Controller
[for ex. public class Entity1Controller : Controller
,而不是上面显示的基本继承模型],属性路由工作文件顺利。
我试图用谷歌搜索它,并且知道了,DefaultDirectRouteProvider
但这仅适用于ApiController
. 我想在 MVC 应用程序中使用相同的 [ie Controller
]。这样当我通过以下地址访问 AddorEditEntity 方法时,www.localhost.com/Entity1/Add
它应该呈现视图。
请告知这是否可能。