簡體   English   中英

asp.net mvc 5獲取傳遞到視圖中的變量的名稱

[英]asp.net mvc 5 get name of variable passed into view

我正在嘗試獲取要傳遞給局部視圖的模型的變量名,但無法弄清楚這一點。 在_MetricsTotal部分視圖中,如何獲取“ nameOfVariable”?

指標模型

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

控制者

    MetricsModel metricsData = new MetricsModel();
    //Logic to populate some metricsData
    return View("View1", metricsData);

查看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) 
    }
}

_Metrics總局部視圖

@model IEnumerable<MVC5.Models.MetricsDetail>

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

如果您想要該標簽,則還需要傳遞該標簽。

@model MyViewModel

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

上新課

public class MyViewModel
{
    public string Name { get; set; }
    public IEnumerable<MVC5.Models.MetricsDetail> Data { get; set; }
}

然后在父視圖中調用它

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

C#6名運算符=> https://msdn.microsoft.com/zh-cn/library/dn986596.aspx

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM