【发布时间】:2014-04-09 17:17:31
【问题描述】:
使用 VS2013 Pro、TFS 2013 Express
我目前正在学习 asp.net mvc 5 一书中的教程,一切都很好。 昨天我在本地机器上安装了 TFS 2013 Express,将项目复制到 TFS 文件夹并将项目添加到源代码管理。
自从这样做以来,我现在遇到了类似主题的错误。在这种情况下,控制器只是有一个 using:
using System.Web;
using System.Web.Mvc;
using PartyInvites.**Models**;
namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
// GET: Home
//public ActionResult Index()
//{
// return View();
//}
public ViewResult Index()
{
int hour = DateTime.Now.Hour;
ViewBag.Greeting = hour < 12 ? "Good Morning" : "Good Afternoon";
return View();
}
[HttpGet]
public ViewResult RsvpForm()
{
return View();
}
[HttpPost]
public ViewResult RsvpForm(**GuestResponse** guestResponse)
{
//todo: Email response to the party organizer
return View("Thanks", guestResponse);
}
}
}
在 HttpPost 中,对象“GuestResponse”是红线所在的位置,但该对象位于模型命名空间等中。EDIT 红线也在using 声明在顶部。
现在我注意到,如果我从解决方案文件夹中删除 SUO 文件并打开解决方案,错误就会消失,但一旦我保存解决方案并重新打开它,错误就会再次出现。我还注意到我知道的其他几个项目也存在同样的问题。
另外 - 当我构建解决方案时,他们构建的解决方案没有错误,但红线仍然存在。
我认为问题出在 SUO 文件和 TFS 上,因为该解决方案在无 TFS 版本中工作得非常好,但我找不到 SUO 和 TFS 的解决方案。我是 PC 的唯一用户,拥有完整的管理员权限。
Q) 有谁知道如何解决这个问题,这样我就不必一直删除 SUO 文件了?
编辑 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace PartyInvites.Models
{
public class GuestResponse
{
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public bool? WillAttend { get; set; }
}
}
编辑 2
我现在尝试将 FILE>SourceControl>Change source control 更改为 Unbind from source control,它现在按预期工作......但它现在不在源代码管理中。我认为这个问题现在归结为 TFS 相关。 - 更新。将其重新绑定回 TFS 后,问题又回来了。
【问题讨论】:
-
如果你完全限定类名会发生什么?可能存在命名空间冲突
-
不,没有命名空间冲突,项目构建良好。红线也在“使用PartyInvites.Models”;在顶部的“模型”上。很奇怪。
-
您能否发布包含GuestResponse 的命名空间声明的类。这将帮助我们验证命名空间。您也可以尝试“清洁解决方案”,然后尝试“重建解决方案”,但如果没有课程内容,我们无能为力:/
-
@Tony 我已经编辑了问题并添加到了 GuestResponse 类中。如您所见,名称空间等很好。实际项目编译和运行没有错误,并且在删除 SUO 文件(或卸载/重新加载项目)后第一次加载项目时问题就消失了。是的,也尝试过清理/重建。
-
我很想知道您是否将 PartyInvites.Models 重命名为 PartyInvites.MyModels 并更新 using 语句然后重建,如果这将是绷带的话。不知道为什么 SUO 会在这里有所作为,因为它不是一个解决方案选项 - 耸耸肩。
标签: c# asp.net-mvc tfs asp.net-mvc-5