Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象';不包含';x';没有扩展方法';x';接受类型为'的第一个参数;对象';可以找到_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 对象';不包含';x';没有扩展方法';x';接受类型为'的第一个参数;对象';可以找到

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;

我已经搜索了两天的答案,但没有找到任何好的答案。 我希望有人能帮助我。 每次我在视图中收到相同的错误消息时:对象“”不包含“SprintName”的定义,并且找不到接受类型为“object”的第一个参数的扩展方法“SprintName”(是否缺少using指令或程序集引用?)

我的ViewModel:

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
,那么请显式执行。