我正在使用Microsoft Exchange Web服务,无论出于什么原因我无法在我的视图中访问命名空间,但它在我的控制器代码中工作正常。
我的控制器代码:
using Microsoft.Exchange.WebServices.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
namespace EWS.Web.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var service = new ExchangeService();
service.Credentials = new WebCredentials("username", "password");
service.AutodiscoverUrl("username", RedirectionUrlValidationCallback);
var userMailbox = new Mailbox("emailAddress");
var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox);
var itemView = new ItemView(20); // page size
var userItems = service.FindItems(folderId, itemView);
return View(userItems.ToList());
}
}
}
我的控制器代码按预期工作,吸引了20个最新用户的电子邮件。但是,当我想在View中显示这些电子邮件时,我收到以下错误:
CS0234: The type or namespace name 'Data' does not exist in the namespace 'Microsoft.Exchange.WebServices'
在我的观点中,我尝试添加:
@using Microsoft.Exchange.WebServices.Data
导致相同的错误。我还尝试将名称空间添加到我的Views文件夹中的Web.Config文件中:
<add namespace="Microsoft.Exchange.WebServices.Data"/>
再次,我们得到了同样的错误。
在我的控制器找到命名空间之前,我从未遇到过这个问题,但我的观点却没有。我的控制器可以找到命名空间的事实告诉我我的引用是正确的。
任何帮助都将不胜感激。
答案 0 :(得分:0)
看起来你的观点中有一个拼写错误:
@using Microsoft.Exchange.WebService.Data
应该是:
@using Microsoft.Exchange.WebServices.Data
此外,您表示已将命名空间添加到~/Views/web.config
这似乎是正确的,只是不要忘记关闭并重新打开Visual Studio Intellisense的Razor视图以选择更改,否则它应该可以正常工作你跑了。
答案 1 :(得分:0)
我通过删除所有Microsoft.Exchange.WebServices引用并通过Nuget重新安装它们并清理我的解决方案来解决了这个问题。
不确定为什么会发生这种情况或者怎么会发生,但这似乎解决了这个问题。