如何在不使用C#发出新请求的情况下读取当前标头?

时间:2014-09-22 15:29:59

标签: c# asp.net-mvc http header

由于JS无法获取初始页面请求,C#可以在不发出新请求的情况下获取当前标题吗?

主要目标是通过查看具有自定义值的HTTP标头来确定谁正在访问该页面" uid":" world"传入后。确定后,该值将显示在同一页面上。

Hello "world"

可以用C#完成吗?怎么样?

3 个答案:

答案 0 :(得分:3)

要访问MVC控制器中的标头,您可以使用:

<强>控制器

public ActionResult Index()
{
    var uid = System.Web.HttpContext.Current.Request.Headers["uid"];

    // Add your view model logic here...
    var model = new TestModel
    {
        HeaderValue = uid
    };

    return View(model);
}

查看

@model MyProject.Models.TestModel

<div>
    Hello @Model.HeaderValue
</div>

答案 1 :(得分:2)

在ASP.NET中,您可以从Headers对象中读取Request。我的回答是假设Web表单,如果您不使用Web表单,请更新您的问题(将来在初始问题中包含该信息非常重要)。

<asp:Label runat="server" id="HeaderLbl" />

代码背后:

using System.Web; //add this to the top of your class if it's not already there

protected void Page_Load(object sender, EventArgs e)
    {
    HeaderLbl.Text = Request.Headers["uid"];
    }

答案 2 :(得分:0)

在您的控制器中,使用System.Mvc.Web.Mvc.Request.Headers从当前请求中获取标头。

如果您使用的是Razor,可以直接在.cshtml页面上添加@Request.Headers,并根据需要与Javascript共享内容。