我对 ASP.NET MVC 堆栈完全陌生,我想知道简单的 Page 对象和 Request ServerVariables 对象发生了什么?
基本上,我想提取客户端 PC 的 IP 地址,但我无法理解当前的 MVC 结构如何改变这一切。
据我所知,大多数变量对象已被 HttpRequest 变体取代。
有人愿意分享一些资源吗? ASP.NET MVC 世界里确实有海量的东西需要学习。 :)
例如,我有一个具有当前函数的静态类。如何使用 ASP.NET MVC 获得相同的结果?
public static int getCountry(Page page)
{
return getCountryFromIP(getIPAddress(page));
}
public static string getIPAddress(Page page)
{
string szRemoteAddr = page.Request.ServerVariables["REMOTE_ADDR"];
string szXForwardedFor = page.Request.ServerVariables["X_FORWARDED_FOR"];
string szIP = "";
if (szXForwardedFor == null)
{
szIP = szRemoteAddr;
}
else
{
szIP = szXForwardedFor;
if (szIP.IndexOf(",") > 0)
{
string [] arIPs = szIP.Split(',');
foreach (string item in arIPs)
{
if (!isPrivateIP(item))
{
return item;
}
}
}
}
return szIP;
}
如何从控制器页面调用此函数?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
Request.ServerVariables["REMOTE_ADDR"]应该可以工作 - 直接在视图中或在控制器操作方法主体中(Request 是 MVC 中 Controller 类的属性,而不是 Page)。 p>它正在工作..但您必须在真实的 IIS 而不是虚拟的 IIS 上发布。