亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 ASP.NET 中使用視圖模型?

如何在 ASP.NET 中使用視圖模型?

C#
喵喵時光機 2022-01-15 17:13:12
我想查看名為 Nvram 和 ExecOut 的兩個表的數據。**Nvram:**using Newtonsoft.Json;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;namespace SmartRouter.Domain{  public class Nvram  {    [Key, ForeignKey("SRouter")]    public int NvramId { get; set; }    [JsonProperty("wanConnectionMode")]    public string ConnectionType { get; set; }    [JsonProperty("WAN_MAC_ADDR")]    public string IConfigMacAddress { get; set; }    [JsonProperty("lan_gateway")]    public string DefaultGateway { get; set; }    [JsonProperty("wan_dhcp_hn")]    public string HostName { get; set; }    [JsonProperty("macCloneEnabled")]    public string MacCloneEnable { get; set; }    [JsonProperty("macCloneMac")]    public string MacCloneMac { get; set; }    [JsonProperty("wan_pppoe_user")]    public string Username { get; set; }    [JsonProperty("wan_pppoe_pass")]    public string Password { get; set; }    [JsonProperty("wan_pppoe_optime")]    public string WanOperationMode { get; set; }    [JsonProperty("wan_ipaddr")]    public string WanIPAddress { get; set; }    [JsonProperty("wan_netmask")]    public string WanSubnetNetmask { get; set; }    [JsonProperty("wan_gateway")]    public string WanGatewayIP { get; set; }    [JsonProperty("wan_primary_dns")]    public string WanDNS1 { get; set; }    [JsonProperty("wan_secondary_dns")]    public string WanDNS2 { get; set; }    [JsonProperty("lan_ipaddr")]    public string LanIPAddress { get; set; }    [JsonProperty("lan_netmask")]    public string LanSubnetNetmask { get; set; }    [JsonProperty("dhcpEnabled")]    public bool? DHCPEnabled { get; set; }    [JsonProperty("dhcpStart")]    public string DHCPStart { get; set; }    [JsonProperty("dhcpEnd")]    public string DHCPEnd { get; set; }    [JsonProperty("dhcpMask")]    public string DHCPSubnetMask { get; set; }    [JsonProperty("dhcpPriDns")]    public string DHCPDNSPrimary { get; set; }    [JsonProperty("dhcpSecDns")]  }}
查看完整描述

1 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

不確定哪個對象返回動態,因此您可能希望返回一些 DataFromRepoDto 對象(為該對象創建新類),其中分配了所有這些字段


DataFromRepoDto:


    public class DataFromRepoDto{

            public string ConnectionType {get;set;}

            public string IConfigMacAddress {get;set;}

            public string LanIPAddress {get;set;}


            //etc all needed fields with respective datatypes



    }   

您的方法已修改:


public DataFromRepoDto GetRouterStatusByMac(string macAddress)

{

  var nvramdata=_srdbcontext.Nvrams.Where(q => q.SRouter.MacAddress == macAddress).Select(s => new

  {

    s.ConnectionType,

    s.IConfigMacAddress,

    s.LanIPAddress,

    s.LanSubnetNetmask,

    s.DefaultGateway

  }).FirstOrDefault();

  var execdata = _srdbcontext.ExeOuts.Where(q => q.SRouter.MacAddress == macAddress).Select(e => new

  {

    e.BuildInfo,

    e.Uptime,

    e.WANIPAddress,

    e.SubnetMask,

    e.DefaultGateway,

    e.PrimaryDNS,

    e.SecondaryDNS,

    e.LanMacAddress

  }).FirstOrDefault();

  return new DataFromRepoDto

  {

    ConnectionType = nvramdata.ConnectionType,

    IConfigMacAddress = nvramdata.IConfigMacAddress,

    LanIPAddress = nvramdata.LanIPAddress,

    //etc...

  };

    //return result;

}

然后在您的控制器操作中使用它。


var dataFromRepo = 

routerrepository.GetRouterStatusByMac("f8:b5:68:a0:10:1c");

var routerStatusViewModel = new RouterStatusViewModel{

    //object initializer

    WANIPAddress = dataFromRepo.WANIPAddress,

    //etc...

};

return View(routerStatusViewModel );

之后,您可以像這樣訪問您的數據


@model myproject.mynamespace.Models.RouterStatusViewModel


<div>@Model.WANIPAddress<div> 

或使用 html 助手


@Html.LabelFor(x => x.WANIPAddress )


查看完整回答
反對 回復 2022-01-15
  • 1 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號