Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# asp.net mvc 5获取传递到视图中的变量名称_C#_Asp.net_Asp.net Mvc_Razor_Asp.net Mvc 5 - Fatal编程技术网

C# asp.net mvc 5获取传递到视图中的变量名称

C# asp.net mvc 5获取传递到视图中的变量名称,c#,asp.net,asp.net-mvc,razor,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 5,我试图获取传递到局部视图的模型的变量名,但无法解决这个问题。在MetricsTotal局部视图中,如何获取“nameOfVariable” 指标模型 public class MetricsModel { public IEnumerable<MetricsDetail> metricsDetail { get; set; } public IEnumerable<AttyList> attyList { get; set; } public IE

我试图获取传递到局部视图的模型的变量名,但无法解决这个问题。在MetricsTotal局部视图中,如何获取“nameOfVariable”

指标模型

public class MetricsModel
{
    public IEnumerable<MetricsDetail> metricsDetail { get; set; }
    public IEnumerable<AttyList> attyList { get; set; }
    public IEnumerable<MatterDataModel> matterdata { get; set; }    
}
视图1

@{
    @model MVC5.Models.MetricsModel

    List<MVC5.Models.MetricsDetail> fooTotal = new List<MVC5.Models.MetricsDetail>();
    List<MVC5.Models.MetricsDetail> barTotal = new List<MVC5.Models.MetricsDetail>();        
}
@foreach (var item in Model.metricsDetail){
    //Logic to add some items to fooTotal and barTotal

    if (Request.Form["queryType"] != "foo")
    {   
        @Html.Partial("_MetricsTotal", fooTotal)
    }
    else{
        @Html.Partial("_MetricsTotal", barTotal) 
    }
}
@{
@型号MVC5.Models.MetricsModel
List fooTotal=新列表();
List barTotal=新列表();
}
@foreach(Model.metricsDetail中的var项){
//将某些项目添加到FootTotal和barTotal的逻辑
if(Request.Form[“queryType”]!=“foo”)
{   
@Html.Partial(“\u MetricsTotal”,footottal)
}
否则{
@Html.Partial(“_MetricsTotal”,barTotal)
}
}
\u公制整体局部视图

@model IEnumerable<MVC5.Models.MetricsDetail>

<p @{if(nameOfVariable=="fooTotal"){ <text>id = "fooTotalVariable"</text>}} Model.Sum(itemData => itemData.totalHours))
@model IEnumerable
itemData.totalHours))

如果你想要那个标签,你也需要把它传进来

@model MyViewModel

<div>@Model.Name</div><div>@Model.Data.Sum(m => m.totalHours)</div>

如果你想要那个标签,你也需要把它传进去

@model MyViewModel

<div>@Model.Name</div><div>@Model.Data.Sum(m => m.totalHours)</div>
C#6操作员姓名=>

范例

@Html.Partial("_MetricsTotal",new MyViewModel { Name = nameof(fooTotal), Data = fooTotal }
C#6操作员姓名=>

范例

@Html.Partial("_MetricsTotal",new MyViewModel { Name = nameof(fooTotal), Data = fooTotal }

让局部视图声明它自己的模型。@Jasen你能用一些代码详细说明一下吗?thanks@Jasen事实上,我已经声明了我需要的模型…很抱歉在原始帖子中遗漏了这一点…我编辑了我的代码您正在传递一个集合,因此您需要一个索引或foreach循环。变量的名称应该是什么?
MetricsDetail
?@Jasen nameOfVariable的属性应该是我传递到局部视图的“foottal”或“barTotal”。我不需要/不想使用foreach b/c,我正在使用
Model.Sum(itemData=>itemData.totalHours))
来合计值。让局部视图声明它自己的模型。@Jasen你能用一些代码详细说明一下吗?thanks@Jasen事实上,我已经声明了我需要的模型…很抱歉在原始帖子中遗漏了这一点…我编辑了我的代码您正在传递一个集合,因此您需要一个索引或foreach循环。变量的名称应该是什么?
MetricsDetail
?@Jasen nameOfVariable的属性应该是我传递到局部视图的“foottal”或“barTotal”。我不需要/不想使用foreach b/c,我正在使用
Model.Sum(itemData=>itemData.totalHours))
对值进行合计。我建议使用nameof运算符而不是硬编码名称,将潜在的运行时异常移动到编译时检查。我建议使用nameof运算符而不是硬编码名称,将潜在的运行时异常移动到编译时检查。
@Html.Partial("_MetricsTotal",new MyViewModel { Name = nameof(fooTotal), Data = fooTotal }