我想抓住客戶端機器的IP地址,然後爲它分配一個名稱。假設它是192.168.7.12,那麼該工作站將會有名稱「Head Board Assembly」,然後將其傳回到Layout視圖。分配名稱位不是問題,但是,我想將最終值傳遞給主佈局,而不是重複下面的代碼。忽略服務器IP方法,它在本地主機的早期階段。添加一個變量到佈局頁面MVC
HomeController.cs
public class HomeController : Controller
{
[Authorize]
public ActionResult Index()
{
ViewBag.HtmlStr = "Workstation name: " + IP();
return View();
}
[Authorize]
public ActionResult Tutorial()
{
ViewBag.HtmlStr = "Workstation name: " + IP();
return View();
}
[Authorize]
public ActionResult Contact()
{
ViewBag.HtmlStr = "Workstation name: " + IP();
return View();
}
public string IP()
{
string myHost = System.Net.Dns.GetHostName();
string myIP = null;
for (int i = 0; i <= System.Net.Dns.GetHostEntry(myHost).AddressList.Length - 1; i++)
{
if (System.Net.Dns.GetHostEntry(myHost).AddressList[i].IsIPv6LinkLocal == false)
{
myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString();
}
}
return myIP;
}
layout.cshtml
<section id="login">
<p>@ViewBag.HtmlStr</p>
</section>
感覺像IM重複自己每次加的代碼相同的部分,然後具有調用的方法和代碼轉換成其它控制器,因爲佈局從每個控制器方法調用查看包。
我覺得肯定會有更好的方法,因此我想在佈局主設備中分配IP名稱並設置一次。我不知道如何去這樣做,因爲佈局,是很好的layout.Also IVE一派的地獄它哈哈
你知道你」重新顯示*服務器*的IP地址,對吧? – bzlm 2015-03-30 19:33:33
是的,目前它只能用於本地主機上的展示目的,即時將添加客戶端一旦我到達項目結束。 – Matchbox2093 2015-03-30 19:37:58