我对aspx开发很新,而且我在aspx代码和aspx.cs的连接上遇到了很多困难,正是我遇到了问题:
DisplayChars.aspx:
<form id="form1" runat="server">
<div>
<div>Champion name: </div> <div><input id="Champ_name" type="text" /></div>
<div>Champion Icon URL: </div> <div><input id="Champ_icon" type="text" /></div>
<div>Champion Subtext: </div> <div><input id="Champ_subtext" type="text" /></div>
<div> Free to play :</div><div><input id="Champ_freetoplay" type="checkbox" />
</div>
<div>Positions:</div>
<div>
<input id="Top" type="checkbox" /> Top
<input id="Mid" type="checkbox" /> Mid
<input id="Jungle" type="checkbox" /> Jungle
<input id="Carry" type="checkbox" /> Carry
<input id="Support" type="checkbox" /> Support
</div>
</div>
<input id="Champ_Submit" type="submit" value="submit" />
DisplayChars.aspx.cs
if (IsPostBack)
{
//NameValueCollection nvc = Request.Form.GetValues
//Champion t1 = new Champion(Request.Form.Get("Champ_Name"), Int32.Parse(Request.Form.Get("Champ_freetoplay")), Request.Form.Get("Champ_subtext"), Request.Form.Get("Champ_description"), "10110");
//t1.persistChampion();
string temp = Request["Champ_name"];
所以我在努力获取Form-values的方法。
我已尝试Request.Form.GetValues
,Request.Form.Get
甚至Request["Form_id_Name"]
。
问题是,如果这种方法甚至是正确的,因为我在面向对象编程方面有经验,但在HTML aspx伪服务器代码和它背后的cs文件的组合中没有。
答案 0 :(得分:2)
如果您向HTML标记添加runat="server"
,并且可以从代码隐藏中访问其属性:
// DisplayChars.aspx:
<input id="Champ_name" type="text" runat="server" />
...
// DisplayChars.aspx.cs:
string champName = Champ_name.Value;
答案 1 :(得分:1)
虽然你可以做到
Request.Form["Champ_name"]
这不是asp.net的方式。您必须通过添加runat="server"
使元素成为服务器控件,以便您可以从后面的代码中引用它。
<asp:Button ID="Champ_name" runat="server" OnClick="button_Click" Text="Hello World" />
然后在你的代码隐藏中可以添加一个方法来点击该按钮时触发:
protected void button_Click(object sender, EventArgs e)
{
// logic processing here
}
如果您需要找出按钮的文字是什么:
string text = Champ_name.Text;
基本上,ASP.NET通常不依赖Request.Form
。您将控件设置为runat="server"
,以便您可以在回发时直接从代码隐藏中解决它们。