C# 如何在MVC中迭代模型以找到相似的值
我正在尝试实现一个分配IP系统,MVC web应用程序的管理员可以分配IP地址,这些地址实际上可以标识位置/工作站,如下图所示 现在,我希望将这个用户分配的IP与打开MVC应用程序的机器的IP进行比较,以便从该IP地址发送的任何数据都具有指定的位置。 我在想也许有一种方法可以通过搜索或迭代来找到匹配的IP地址,我在下面尝试过实现它,但还是坚持了如何通过迭代来找到匹配的IP地址C# 如何在MVC中迭代模型以找到相似的值,c#,asp.net-mvc-4,model-view-controller,model,C#,Asp.net Mvc 4,Model View Controller,Model,我正在尝试实现一个分配IP系统,MVC web应用程序的管理员可以分配IP地址,这些地址实际上可以标识位置/工作站,如下图所示 现在,我希望将这个用户分配的IP与打开MVC应用程序的机器的IP进行比较,以便从该IP地址发送的任何数据都具有指定的位置。 我在想也许有一种方法可以通过搜索或迭代来找到匹配的IP地址,我在下面尝试过实现它,但还是坚持了如何通过迭代来找到匹配的IP地址 public static string LocationIPAssign() { v
public static string LocationIPAssign()
{
var model = new Location();
string workstationLocation = ServerIPName();
foreach (Location location in model.Locations) // ICollection<Location>, IList<Location>
{
if (location.AssignedIP == workstationLocation)
{
// do whatever you have to do with your locationToAssign
}
}
return workstationLocation;
}
}
公共静态字符串位置ipassign()
{
var模型=新位置();
字符串workstationLocation=ServerIPName();
foreach(model.Locations中的位置)//ICollection,IList
{
if(location.AssignedIP==工作站位置)
{
//对你的位置做任何你必须做的事来分配
}
}
返回工作站位置;
}
}
任何提示或想法都将不胜感激
如果你要求任何进一步的代码,我很乐意帮助你
更新
位置模型
[Table("Location")]
public partial class Location
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Location()
{
Jobs = new HashSet<Job>();
}
public int LocationID { get; set; }
[Required]
[StringLength(30)]
[Display(Name = "Location Name")]
public string LocationName { get; set; }
[RegularExpression(@"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$", ErrorMessage = "Invalid IP Address")]
public string AssignedIP { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Job> Jobs { get; set; }
public ICollection<Location> Locations { get; set; }
}
[表格(“位置”)]
公共部分类位置
{
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2214:DoNotCallOverridableMethodsInConstructors”)]
公共场所()
{
Jobs=新HashSet();
}
public int LocationID{get;set;}
[必需]
[行政长官(30)]
[显示(名称=“位置名称”)]
公共字符串位置名称{get;set;}
[正则表达式(@“^(?[0-9]{1,3}\){3}[0-9]{1,3}$”,ErrorMessage=“无效IP地址”)]
公共字符串AssignedIP{get;set;}
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2227:CollectionPropertiesShouldBreadOnly”)]
公共虚拟ICollection作业{get;set;}
公共ICollection位置{get;set;}
}
只需循环浏览您的收藏/列表并找到工作站位置:
public static string LocationIPAssign(Location locationToAssign)
{
string workstationLocation = ComputerIPName();
foreach(Location location in Locations) // ICollection<Location>, IList<Location>
{
if(location.AssignedIP == workstationLocation)
{
// do whatever you have to do with your locationToAssign
}
}
return workstationLocation;
}
public静态字符串LocationIPAssign(位置locationToAssign)
{
字符串workstationLocation=ComputerIPName();
foreach(位置中的位置)//ICollection,IList
{
if(location.AssignedIP==工作站位置)
{
//对你的位置做任何你必须做的事来分配
}
}
返回工作站位置;
}
您也可以对其使用Lambda表达式
Locations.where( location => location.AssignedIP == workstationLocation );
您的型号是什么?页面上的用户IP,因此将有许多工作站访问内联网上的MVC应用程序,我需要这些工作站的IP地址,以便MVC应用程序可以识别每个工作站并为其分配名称。是否可以发布您的模型?@stefankmitph已用位置模型更新。是否要通过
位置或ICollection
?我试图实现此功能,但得到了一个答案“对象引用未设置为对象实例”错误,查找错误来自foreach@goldeneye哪个对象是空的?只是一个猜测:模型中的Locations
是空的吗?对于这个愚蠢的问题,我感到有点困惑,很抱歉,但是如果我写“publicicollectionlocations{get;set;}”“在模型中,它是否应该使模型类成为一个集合?如果是,那么“位置”不是空的,如果不是,那么“位置”是空的……你明白我的意思吗?我明白。您正在使用实体框架吗?