【问题标题】:Call HTML page from C# code on condition有条件地从 C# 代码调用 HTML 页面
【发布时间】:2014-10-22 16:29:27
【问题描述】:

我有一个用 c# 编写的页面和一个用 HTML 编写的 web 表单。

我的目标是仅在客户端浏览器上已设置 cookie 时,每次加载 default.aspx 页面时才显示此 html 网络表单。我将通过 webform 中的 php 设置/写入 cookie,因此我假设 c# 代码只需要:

  1. 如果设置为非,则读取 COOKIE 值,
  2. 可视化或不可视化 html 网络表单,具体取决于值 cookie 集。

不确定这是否必须在代码后面使用 c# 或仅在 javascript 中完成。

那么,C# 中是否有任何代码允许我调用 HTML 页面并在与 webform/pop-up 相同的页面中打开它? 另外,是否有可能以我只有在设置了 cookie 时才能调用它的方式触发这个 html 页面?

public partial class Read : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    if (Request.QueryString["cookie"] != null)
    {
        ReadCookie();
    }
}

protected void ReadCookie()
{
    //Get the cookie name the user entered
    String strCookieName = Request.QueryString["cookie"].ToString();

    //Grab the cookie
    HttpCookie cookie = Request.Cookies[strCookieName];

    //Check to make sure the cookie exists
    if (cookie == null)
    {
        lblCookie.Text = "Cookie not found. <br><hr>";   -> SHOW HTML-WEBFORM 
    }
    else
    {

-> DONT SHOW HTML-WEBFORM 
    }
}
}

【问题讨论】:

  • 请澄清您的问题...“C# 中的任何代码”对代码运行的时间/位置的定义非常模糊。如果您需要 ASP.Net C# 代码和网页之间的双向通信,您可能正在寻找 SignalR 之类的东西。
  • 我提到,来自使用 asp.net 用 c# 编写的代码
  • 不是很清楚......我假设你已经阅读了asking questions on SO 的指导并决定不发布代码是有充分理由的。不幸的是,这样的决定意味着您需要对问题/目标进行更详细的解释,而不是您发布小代码示例以及要求时所需要的。请尝试解释何时您的“C# 代码”在请求生命周期内运行(或者可能是一些计时器作业或启动代码)。
  • 希望这能奏效:我有一个用 c# 编写的页面和一个用 HTML 编写的网络表单。我的目标是仅在客户端浏览器上已设置 cookie 时,每次加载 default.aspx 页面时才显示此 html 网络表单。我将通过 webform 中的 php 设置/写入 cookie,因此我假设 c# 代码只需要: 1-如果设置为未设置,则读取 COOKIE 值,2 - 可视化或不可视化 html webform,具体取决于值 cookie 集。不确定这是否必须在后面的代码中使用 c# 或仅在 javascript 中完成。
  • 请下次编辑您的帖子,而不是在 cmets 中添加详细信息。

标签: c# html asp.net cookies


【解决方案1】:

要检查 cookie - 使用 Request.Cookies 集合。您可以按名称访问 cookie。

请注意,“通过 php 设置/写入 cookie”可能意味着 cookie 设置在不同的域上 - 在这种情况下,任何 C#(或任何其他服务器端代码)都无法访问该 cookie,您需要一些重要的客户端代码,使 cookie 信息在其他域上可见。

接下来,当您检查 cookie 时,您可以通过动态添加元素或在 ASPX 页面上使用条件代码来有条件地呈现内容。

【讨论】:

  • cookie应该从服务器设置到客户端浏览器。
  • 这两个过程不是分开的吗? webform 是 html 格式,并在 webclient 浏览器上使用 php 设置 cookie。如果 cookie 设置或未设置到 webclient 浏览器中,aspx 代码将只读取并最终显示或不显示 web 表单。
  • @bostongeorge "aspx 代码将仅读取是否设置了 cookie" - 是的 - 这正是我的建议.. 不确定您的评论是关于什么的。
  • 很抱歉没有说的那么清楚。您写了“请注意,“通过 php 设置/写入 cookie”可能意味着 cookie 设置在不同的域上”。这是否意味着我想要的(使用 webform 设置 cookie 并从 aspx/C# 代码读取 cookie)不起作用?别的。我不明白“cookie is set on different domain”的含义。你对我的目的有什么建议?我有 html 格式的网络表单,如果设置了 cookie,我希望它根据条件显示或不显示。
  • 我不知道你有什么,你也不想提供任何具体的细节,所以很难提出任何建议。我假设您了解,当设置 cookie 时,它​​仅限于特定域,有时甚至是域上的特定路径。所以我很难猜出你不明白什么以及你在寻找什么建议。
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 2014-08-16
  • 2021-05-21
  • 1970-01-01
  • 2012-08-15
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多