【问题标题】:Pass a TextBox Value as a link and a parameter to another webform将 TextBox 值作为链接和参数传递给另一个网络表单
【发布时间】:2015-10-31 03:03:49
【问题描述】:

一旦创建了新的工作订单,我就会尝试从我的 webform1 发送一封电子邮件,但是当用户单击工作订单编号时,我希望将该工作订单编号作为参数传递给 webform2。我用来发送电子邮件的代码:

System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
mm.From = new System.Net.Mail.MailAddress("some@some.com");//who send
mm.To.Add(new System.Net.Mail.MailAddress("some@gmail.com"));
mm.To.Add(new System.Net.Mail.MailAddress("some@some.com"));
mm.Subject = "WorkOrders Created With Type Safety";
mm.Body = "WorkOrderNumber" + ":  " 
+ "<a href=\"http://localhost:49695/Safety.aspx?=WorkOrderNum=\">" 
+ TextBox13.Text + "</a>" 
+ "<-Click on the Work Order Number" + "<br><br/>" 
+ "Requestor" + ":&nbsp;" + TextBoxRequestor.Text 
+ "<br><br/>" + "Date" + ":&nbsp;" + TextBoxDate.Text 
+ "<br><br/>" + "Department" + ":&nbsp;" + TextBoxDepartment.Text
+ "<br><br/>" + "Completion Date" + ":&nbsp;" 
+ TextBoxCompletionDate.Text + "<br><br/>" + "Machine Description" 
+ ":&nbsp;" + TextBoxMachineDescription.Text + "<br><br/>" 
+ "Machine Location" + ":&nbsp;" + TextBoxMachineLocation.Text 
+ "<br><br/>" + "Work Required" + ":&nbsp;" + TextBoxWorkRequired.Text
+ "<br><br/>" + "Status" + ":&nbsp;" + TextBoxStatus.Text;
mm.IsBodyHtml = true;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = ConfigurationManager.AppSettings["smtpServer"];
client.Send(mm);

当上述代码作为电子邮件发送时,结果如下所示,并且 14 是可点击的链接:

WorkOrderNumber:  14<-Click on the Work Order Number

Requestor: Mark

Date: 01/07/2015

Department: IT

Completion Date: 01/08/2015

Machine Description: Fan

Machine Location: SomeLocation

Work Required: Needs Installing 

Status: Open 

那么在 webform2 上我就可以使用这个了:

 protected void Page_Load(object sender, EventArgs e)
        {
            var workourdernum = Request.QueryString["WorkOrderNum"];
        }

所以我只想将 TextBox13.Text 中的那个数字与链接一起传递,我在网上看到人们正在通过 Response.Redirect() 完成类似的任务

【问题讨论】:

  • 你试过什么?我认为像Response.Redirect("Webform2.aspx?WorkOrderNum=" + TextBox13.Text); 这样的方法将是一种非常基本的方法,只要您不介意不进行验证或错误处理。
  • @BenRobinson 我如何将 Response.Redirect 集成到启用了 html 的电子邮件正文中?/
  • 你不能,我以为你想在生成电子邮件的网页上重定向用户,即发送电子邮件然后重定向到另一个页面。您不能让用户在打开电子邮件时被重定向到网页。您只想在电子邮件中放置一个可点击的链接吗?看起来您的代码已经这样做了。

标签: c# asp.net hyperlink html-email mailmessage


【解决方案1】:

这行得通吗?

 "<a href=\"http://localhost:49695/Safety.aspx?WorkOrderNum=" + 
+ TextBox13.Text + "\">" + TextBox13.Text + "</a>" 
+ "<-Click on the Work Order Number" + "<br><br/>" 

您将在查询字符串中传递工作订单号。然后,您的网页可以从查询字符串中提取工作订单号。

您将获得如下所示的 HTML:

 <a href="http://localhost:49695/Safety.aspx?WorkOrderNum=123">123</a>

您已经拥有的代码(用于Page_Load)可以完美地提取第二页中的工作订单号。

【讨论】:

  • 正是我在页面加载时所需要的,即使 Request.QueryString["WorkOrderNum"] 正在获得 {WorkOrderNum%3d16} 的值,为什么会发生这种情况,而我的 TextBox10.Text 在另一个网络表单中正在获取 "" 作为值
  • 我看到你编辑了代码,是的,这一切都很好,谢谢 Ann,一旦我达到 15 个声誉,我也会来投票给这个答案;)
  • 嘿,由于某种原因,当我将值从 webform1 传递到 webform2 时出现此错误“索引(基于零)必须大于或等于零且小于参数列表的大小。 "你以前见过这个错误吗?请帮忙
  • 听起来它可能来自我输入的代码,后来删除了,如果你正在使用它的话。如果您使用 String.Format 并有占位符(如 {0}、{1}、{2} 等),则您需要有与占位符数字一样多的值。例如:String.Format("{0} and {1} and {2}", arg0, arg1, arg2);。以下是一些指导:dotnetperls.com/string-format
  • 谢谢 Ann L 实际上这是我的一个愚蠢的错误,出于某种原因,我在我的选择查询中使用了过滤器,并且在我的 workordernum 上也使用了过滤器,所以它抛出了那个错误,我删除了过滤器它确实有效,但是我也会仔细研究 string.format 文章,也许我会被要求在某个地方使用它。
【解决方案2】:

这里是如何将值从一种形式传递到另一种形式的示例。

webform1.aspx - 例如按钮点击事件

Response.Redirect("webform2.aspx?number=" + TextBox13.Text);

webform2.aspx

int passedNumber; 
protected void Page_Load(object sender, EventArgs e)
{
   if (Request["number"] != null)
   {
       passedNumber = Convert.ToInt32(Request["number"]);
   } 
}

现在您可以在 webform2 上使用该号码为所欲为。

【讨论】:

  • 是的,我同意这是正确的,但这只是当您从一个网络表单工作到另一个网络表单时,但在我的情况下,流程是这样的 webform1-> 创建工作订单-> 带有可点击链接的电子邮件发送到webform2-> 包含所有工作订单,但我想从电子邮件链接接收工作订单编号,所以我可以过滤掉 webform2 上的工作订单你明白我的意思,所以你的答案是正确的,但我如何通过电子邮件链接完成此操作例如 mm.body = response.redirect(("webform2.aspx?number=" + TextBox13.Text) + 如果 html 可以处理,下一项会很酷,但它没有
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 2013-10-13
相关资源
最近更新 更多