c# - 将变量添加到布局页面 MVC

标签 c# asp.net-mvc asp.net-mvc-4

我想获取客户端机器的 IP 地址,然后为其分配一个名称。假设它是 192.168.7.12,那么该工作站将具有名称“Head Board Assembly”,然后将其传递回布局 View 。分配名称位不是问题,但是,我想将最终值传递给主布局,而不是重复下面的代码。忽略服务器 IP 方法,它在本地主机上处于早期阶段。

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;
    }

布局.cshtml

  <section id="login">
                          <p>@ViewBag.HtmlStr</p>
                    </section>

我觉得我每次都在重复自己添加相同的代码部分,然后必须将方法和代码调用到其他 Controller 中,因为布局从每个 Controller 方法调用 View 包。

我觉得肯定会有更好的方法,因此我想在布局母版中分配 IP 名称并设置一次。我不知道如何去做,因为布局非常适合布局。我还用谷歌搜索了一下哈哈

最佳答案

您似乎想要创建某种静态辅助方法,它不仅可以获取 IP 地址,还可以执行一些自定义逻辑。然后你可以在布局中的任何地方调用它。

“假设它是 192.168.7.12,那么该工作站的名称将是“Head Board Assembly”

namespace MyApp.Helpers
{
    public static class GetIP
    {
        public static string AssignedIPName()
        {//do custom logic
        }
     }
}

欢迎@MyApp.Helpers.GetIP.AssignedIPName()。

关于c# - 将变量添加到布局页面 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354644/

相关文章:

.net - System.Web.Razor 与 System.Web.WebPages.Razor

javascript - 在 asp.net mvc 中添加 JavaScript 文件

c# - C#中如何访问不同域的文件

c# - UWP 获取文件的 shell 图标

asp.net-mvc - 如何使用 Get 参数在 ASP.NET MVC 中传递复杂对象?

c# - DatePicker 中的特定日期

c# - MVC - Controller 到服务层通信

c# - 继承自 DefaultModelBinder 的自定义模型绑定(bind)器

c# - 在 UWP 中更新绑定(bind)的项目源后如何更新 GridView?

c# - 将 Windsor CaSTLe 注入(inject)的依赖项传递给并行线程 - Dispose() 问题