我正在使用 Visual Studio 2015 Ultimate 。我在我的Test.aspx文件中放置了一个原始HTML Web表单,并希望从测试中传递表单字段的参数(如:用户名,密码,移动号码等)。 aspx 到 Test.aspx.cs 文件。虽然,我已经编写了用于在按钮单击功能中传递值的代码,但我无法获取数据。我写了“ string u = Request.QueryString [”username“]; ”for username field( without quotes )等等行以打印该表单本身的值,即“ Response.Write(u); ”(不带引号)。在这里,我无法在表单中看到打印值。我该如何解决这个问题?
Register.aspx文件 -
<!-- Start Register Section -->
<div id="login-page">
<div class="layer-stretch">
<div class="layer-wrapper">
<div class="layer-container">
<form class="form-container" action="Register.aspx" method="post" enctype="multipart/form-data" runat="server">
<input type="hidden" name="_token" value="15276e55e6cdfa6911f440f75f64501dc97cc6f4a19102dddb4c47f0c4dd1523ad639943996afef209d6a358056f3b3389a9bcb175b7413ef3547589673a2b7d">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-user-o"></i>
<input class="mdl-textfield__input" type="text" name="fullname" pattern="[A-Z,a-z, ]*" id="register-first-name" runat="server">
<label class="mdl-textfield__label" for="register-first-name">الاسم الكامل<em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال اسم كامل صالح!</span>
</div>
<!--<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-user-o"></i>
<input class="mdl-textfield__input" type="text" name="lastname" pattern="[A-Z,a-z, ]*" id="register-last-name">
<label class="mdl-textfield__label" for="register-last-name">الكنية <em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال الاسم الصحيح!</span>
</div>-->
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-envelope-o"></i>
<input class="mdl-textfield__input" type="text" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" id="register-email" runat="server">
<label class="mdl-textfield__label" for="register-email">البريد الإلكتروني <em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال بريد إلكتروني صحيح!</span>
</div>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-phone"></i>
<input class="mdl-textfield__input" type="text" name="mobile" pattern="[0-9]*" id="register-mobile" runat="server">
<label class="mdl-textfield__label" for="register-mobile">رقم الهاتف المحمول <em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال رقم الجوال صحيح!</span>
</div>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-key"></i>
<input class="mdl-textfield__input" type="password" name="password" id="register-password" runat="server">
<label class="mdl-textfield__label" for="register-password">كلمه السر <em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال كلمة المرور صالحة (الحد الأدنى 6 حرف)!</span>
</div>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon">
<i class="fa fa-key"></i>
<input class="mdl-textfield__input" type="password" name="confirmpassword" id="register-confirm-password" runat="server">
<label class="mdl-textfield__label" for="register-confirm-password">تأكيد كلمة المرور <em> *</em></label>
<span class="mdl-textfield__error">الرجاء إدخال تأكيد كلمة المرور (الحد الأدنى 6 حرف)!</span>
</div>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label form-input-icon form-bot-check">
<i class="fa fa-question"></i>
<input class="mdl-textfield__input" type="number" name="bot-check" id="register-bot" runat="server">
<label class="mdl-textfield__label" for="register-bot">ما هو 10 زائد 3 =<em>* </em></label>
<span class="mdl-textfield__error">الرجاء إدخال القيمة الصحيحة!</span>
</div>
<!--<div class="login-condition">بالنقر على "إنشاء حساب" فإنك توافق على موقعنا<br /><a href="Terms and Conditions.aspx">شروط & الظروف</a></div>-->
<div class="form-submit">
<!-- <button class="mdl-button mdl-js-button mdl-js-ripple-effect button button-primary" name="register" onclick="Submit_Click">إصنع حساب</button>-->
<asp:Button ID="Button1" runat="server" OnClick="Submit_Click" Text="Submit" class="mdl-button mdl-js-button mdl-js-ripple-effect button button-primary" />
<asp:Button ID="Button2" runat="server" Text="Register" class="mdl-button mdl-js-button mdl-js-ripple-effect button button-primary" OnClick="Button2_Click" />
</div>
<div class="login-link">
<span class="paragraph-small">هل لديك حساب؟</span>
<a href="Login.aspx">تسجيل الدخول</a>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- End Register Section -->
Register.aspx.cs文件 -
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MDC_web {
public partial class Register: System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
}
protected void Submit_Click(object sender, EventArgs e) {
System.Diagnostics.Debug.WriteLine("Register button has been clicked!!");
string fn = String.Format("{0}", Request.Form["fullname"]);
Response.Write("<script language='JavaScript'> alert('jhkjhjk');</script>");
Response.Write(fn);
string em = Request.QueryString["email"];
Response.Write(em);
string mob = Request.QueryString["mobile"];
Response.Write(mob);
string p = Request.QueryString["password"];
string cp = Request.QueryString["confirmpassword"];
/*if (p.Equals(cp))
{
string c = ConfigurationManager.ConnectionStrings["cn"].ConnectionString;
SqlConnection con = new SqlConnection(c);
con.Open();
SqlCommand cmd = new SqlCommand("insert into Register (R_Name, Email, Mobile, R_Pass) values ('" + fn + "','" + em + "'," + mob + ",'" + p + "')", con);
int r = cmd.ExecuteNonQuery();
if (r == 1)
{
Response.Write("<script language='JavaScript'> alert('Registration is successfull!!');</script>");
}
}*/
}
/*protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("<script language='JavaScript'> alert('jhkjhjk');</script>");
//Response.Write(fn);
}*/
}
}
答案 0 :(得分:0)
使用.cs中的表单字段值,你必须像这样做
string Username = txtUsername.Value.Trim(); (txtUsername is the name of field in aspx)
string Password = txtPassword.Value.Trim();
string Mobile = txtMobile.Value.Trim();
查询字符串用于通过aspx页面传递值,而不是aspx到cs
答案 1 :(得分:-1)
您可以从.aspx.cs中的.aspx访问asp id。
只需给他们一个唯一的ID
和runat
,就像这样:
<强>的.aspx 强>
<asp:TextBox runat="server" ID="txtUsername"></asp:TextBox>
<强> .aspx.cs 强>
var username = txtUsername.Text;
这是用于接收文本框的文本。如果要设置文本,只需将其更改为txtusername.Text = "test test"
即可。您也可以使用asp:labels,asp:button等。
查看this post了解更多信息
如果你想在按钮上点击,只需使用点击后发生的回发。
<强>的.aspx 强>
<asp:TextBox runat="server" ID="txtUsername"></asp:TextBox>
<asp:Button runat="server" ID="btnSumbit" Text="submit"></asp:Button>
<强> .aspx.cs 强>
protected void btnSumbit_Click(object sender, EventArgs e){
var username = txtUsername.Text;
//do username stuff in here
}
如果您需要带有websforms的 登录教程 表格,请检查其中一项:
答案 2 :(得分:-2)
不要通过查询字符串以纯文本形式传输密码。为您的生产站点设置https连接 - 您可以使用Let's Encrypt免费。你说你添加了一个&#34;原始HTML表单&#34; - 添加纯HTML元素但不添加额外的表单元素,因为ASPNET只能处理带有runat =&#34; server&#34;的单个表单。属性。
然后,要使用纯HTML,只需添加runat =&#34; server&#34;这样你就可以在服务器端获取数据:
<强> Test.aspx文件:强>
User Name: <input type="text" name="userName" runat="server">
<强> Test.aspx.cs 强>
string userName = userName.Value.Trim();
<强>更新强>
如果你正在使用母版页,为什么你在aspx中有一个表格标签?母版页通常包含表单标记,因此看起来您正在从其他位置复制和粘贴代码。从您的aspx中删除表单标记。
不要通过查询字符串传递URL中的敏感信息。在母版页中使用单个表单标记,然后在代码隐藏中使用:
string fName = register-first-name.Value;
您正在使用ASPNET,因此pattern属性中没有任何意义。只需添加Regular Expression validator控件。