C# 对象';不包含';x';没有扩展方法';x';接受类型为'的第一个参数;对象';可以找到
我已经搜索了两天的答案,但没有找到任何好的答案。 我希望有人能帮助我。 每次我在视图中收到相同的错误消息时:对象“”不包含“SprintName”的定义,并且找不到接受类型为“object”的第一个参数的扩展方法“SprintName”(是否缺少using指令或程序集引用?) 我的ViewModel:C# 对象';不包含';x';没有扩展方法';x';接受类型为'的第一个参数;对象';可以找到,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我已经搜索了两天的答案,但没有找到任何好的答案。 我希望有人能帮助我。 每次我在视图中收到相同的错误消息时:对象“”不包含“SprintName”的定义,并且找不到接受类型为“object”的第一个参数的扩展方法“SprintName”(是否缺少using指令或程序集引用?) 我的ViewModel: public class SprintDataViewModel : IEnumerable { public string SprintName { get; set;
public class SprintDataViewModel : IEnumerable
{
public string SprintName { get; set; }
public List<SprintPsps> PspElemente = new List<SprintPsps>();
public IEnumerator GetEnumerator()
{
return null;
}
}
public class SprintPsps
{
public string PspName { get; set; }
public float PspBudget { get; set; }
public List<MitarbeiterPsp> Mitarbeiter = new List<MitarbeiterPsp>();
}
public class MitarbeiterPsp
{
public string Name { get; set; }
public string Forename { get; set; }
public float Ist { get; set; }
public float Soll { get; set; }
public float Netto { get; set; }
}
我的控制器:
public class EvaluationController : Controller
{
// GET: Evaluation
public ActionResult Index()
{
var db = new DBInteractions();
return View(db.GetTotalEvaluationData());
}
}
在这里,我从数据库中提取数据:
public SprintDataViewModel GetTotalEvaluationData()
{
var sprintData = new SprintDataViewModel();
using (db)
{
var sprint = db.Sprint.FirstOrDefault(x => x.strDescription == "Sprint1");
var sprintID = sprint.intSprintID;
var partProjectData = db.PartprojectData.FirstOrDefault(x => x.intSprintID == sprintID);
var partprojectUserID = partProjectData.intPartprojectUserID;
var partprojectUser =
db.PartprojectUser.FirstOrDefault(x => x.intPartprojectUserID == partprojectUserID);
var partprojectID = partprojectUser.intPartprojectID;
var userid = partprojectUser.intUserID;
var user = db.User.FirstOrDefault(x => x.intUserID == userid);
var partproject = db.Partproject.FirstOrDefault(x => x.intPartprojectID == partprojectID);
var excelrow = db.ExcelRow.FirstOrDefault(x => x.strDescription == "Sprint1");
/*for (var i = 0; i > 1; i++)
{
for (var j = 0; j == 1; j++)
{*/
var sprintPsps = new SprintPsps();
/*for (var k = 0; k == 1; k++)
{*/
var mapsp = new MitarbeiterPsp()
{
Name = user.strName,
Forename = user.strForename,
Ist = 51,
Soll = 2,
Netto = 34
};
sprintPsps.Mitarbeiter.Add(mapsp);
//}
sprintPsps.PspName = partproject.strDescription;
sprintPsps.PspBudget = (float) partproject.fltBudget;
sprintData.PspElemente.Add(sprintPsps);
//}
sprintData.SprintName = sprint.strDescription;
//}
return sprintData;
}
}
public SprintDataViewModel GetTotalEvaluationData()
{
var sprintData = new SprintDataViewModel();
using (db)
{
var sprint = db.Sprint.FirstOrDefault(x => x.strDescription == "Sprint1");
var sprintID = sprint.intSprintID;
var partProjectData = db.PartprojectData.FirstOrDefault(x => x.intSprintID == sprintID);
var partprojectUserID = partProjectData.intPartprojectUserID;
var partprojectUser =
db.PartprojectUser.FirstOrDefault(x => x.intPartprojectUserID == partprojectUserID);
var partprojectID = partprojectUser.intPartprojectID;
var userid = partprojectUser.intUserID;
var user = db.User.FirstOrDefault(x => x.intUserID == userid);
var partproject = db.Partproject.FirstOrDefault(x => x.intPartprojectID == partprojectID);
var excelrow = db.ExcelRow.FirstOrDefault(x => x.strDescription == "Sprint1");
/*for (var i = 0; i > 1; i++)
{
for (var j = 0; j == 1; j++)
{*/
var sprintPsps = new SprintPsps();
/*for (var k = 0; k == 1; k++)
{*/
var mapsp = new MitarbeiterPsp()
{
Name = user.strName,
Forename = user.strForename,
Ist = 51,
Soll = 2,
Netto = 34
};
sprintPsps.Mitarbeiter.Add(mapsp);
//}
sprintPsps.PspName = partproject.strDescription;
sprintPsps.PspBudget = (float) partproject.fltBudget;
sprintData.PspElemente.Add(sprintPsps);
//}
sprintData.SprintName = sprint.strDescription;
//}
return sprintData;
}
}
我的看法是:
@using ScrumKST.Models
@model SprintDataViewModel
@Html.DisplayForModel()
@{
ViewBag.Title = "Auswertung";
}
<h2>Sprint Auswertung</h2>
<table>
<tr>
<th>
</th>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.SprintName)
</th>
<th>
@Html.DisplayNameFor(model => model.PspElemente[0].PspName)
</th>
<th>
<h6>IST SOLL</h6>
</th>
<th>
<h6>NETTO</h6>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<th>
@Html.DisplayFor(modelItem => item.SprintName)
</th>
<th>
@Html.DisplayFor(modelItem => item.PspElemente[0].PspName)
</th>
</tr>
}
</table>
@使用ScrumKST.Models
@模型SprintDataViewModel
@Html.DisplayForModel()
@{
ViewBag.Title=“Auswertung”;
}
斯普林特奥斯韦东酒店
@DisplayNameFor(model=>model.SprintName)
@Html.DisplayNameFor(model=>model.psElemente[0].PspName)
伊斯特索尔
内托
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.SprintName)
@DisplayFor(modelItem=>item.psElemente[0].PspName)
}
应用程序始终在“item.SprintName”和“item.psplemente[0].PspName”处失败。
我的问题是什么?请注意,您的模型是
SprintDataViewModel
。请注意,您正在通过Model
进行枚举。请注意,您将SprintDataViewModel.GetEnumerator()实现为返回null
。然而,这是在编译代码之后您将面临的另一个问题。当前的问题是您正在实现非强类型的System.Collection.IEnumerable
。这意味着项
属于对象
类型(并且System.object
中没有任何SprintName
属性)。使用IEnumerable
,或者在foreach
中指定类型,而不是var
(然后将其键入object
)。太棒了!但是现在我遇到了SprintDataViewModel.GetEnumerator()的问题。@AdrianoRepettiIt不应该是IEnumerable
(至少从您的控制器和GetTotalValuationData()
prototype)但老实说,我不读GetTotalValuationData()
,那么我不知道您想做什么。如果您的目的是枚举psElemente
,则显式执行。请注意,您的模型是SprintDataViewModel
。请注意,您正在通过Model
进行枚举。请注意,您将SprintDataViewModel.GetEnumerator()实现为返回null
。然而,这是在编译代码之后您将面临的另一个问题。当前的问题是您正在实现非强类型的System.Collection.IEnumerable
。这意味着项
属于对象
类型(并且System.object
中没有任何SprintName
属性)。使用IEnumerable
,或者在foreach
中指定类型,而不是var
(然后将其键入object
)。太棒了!但是现在我遇到了SprintDataViewModel.GetEnumerator()的问题。@AdrianoRepettiIt不应该是IEnumerable
(至少从您的控制器和GetTotalValuationData()
prototype)但老实说,我不读GetTotalValuationData()
,那么我不知道您想做什么。如果您的目的是枚举psElemente
,那么请显式执行。