在.aspx和.aspx.cs之间传递参数

时间:2018-03-02 11:54:29

标签: c# asp.net

我正在使用 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">شروط &#38; الظروف</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);
 }*/
 }
}

3 个答案:

答案 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。

只需给他们一个唯一的IDrunat,就像这样:

<强>的.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控件。