【发布时间】:2026-01-08 15:05:01
【问题描述】:
我一直在尝试实现 David Hayden 的 Orchard CMS 和 ASP .NET Web API http://www.davidhayden.me/blog/orchard-cms-and-asp.net-web-api,但我遇到了问题,基本上是找不到页面。
这就是我所拥有的:
在我的控制之下
ContactViewModel.cs
namespace Sunkist.ContactManager.Controllers
{
public class ContactsController : ApiController
{
private readonly IContentManager _contentManager;
public ContactsController(IContentManager contentManager)
{
_contentManager = contentManager;
}
public IEnumerable<ContactViewModel> Get()
{
return _contentManager
.Query(VersionOptions.Published, "Contact")
.List()
.Select(c => new ContactViewModel(c));
}
public ContactViewModel Get(int id)
{
var contact = _contentManager.Get(id);
if (contact == null)
throw new HttpResponseException
(new HttpResponseMessage(HttpStatusCode.NotFound));
return new ContactViewModel(contact);
}
}
}
ViewModel 文件夹 ViewModel.cs
namespace Sunkist.ContactManager.ViewModel
{
public class ContactViewModel
{
private Orchard.ContentManagement.ContentItem c;
public ContactViewModel(Orchard.ContentManagement.ContentItem c)
{
// TODO: Complete member initialization
this.c = c;
}
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
}
}
和迁移
namespace Sunkist.ContactManager {
public class Migrations : DataMigrationImpl {
public int Create() {
// Creating table ContactRecord
SchemaBuilder.CreateTable("ContactRecord", table => table
.ContentPartRecord()
.Column("Name", DbType.String)
.Column("Address", DbType.String)
.Column("City", DbType.String)
);
return 1;
}
}
}
我是 Orchard 和 .Net MVC 的新手,所以我不确定自己做错了什么?
【问题讨论】:
-
你去哪里得到404?
-
您确定这是您操作的正确网址吗?您是否创建了自定义路线? “api”部分来自哪里?根据您链接的文章,如果您创建了该路线,它应该是 /api/contacts。
-
我也在尝试实现 ApiController。我得到一个 404 只是试图点击我的 Orchard 根页面。当我排除我的 ContactsController.cs 等效项并重新编译模块时,Orchard 根页面加载得很好。 Orchard 对你的行为方式是否相同?或者就在您尝试访问您的 /api/sunkist... 页面时?
标签: asp.net-mvc asp.net-web-api orchardcms