我对asp比较新,但不确定为什么我的表单中的某些值不会更新。我有点讨厌修改MVC可能会做得更好的网址,我对建议持开放态度。
当这个页面加载时,它会正确地将input1和input2留空,因为url中没有条目。当我使用按钮提交它也没关系。当表单被更改并且再次单击该按钮时,输入1和1的值。 input2保持不变。这是为什么?
public partial class Default : System.Web.UI.Page
{
int count = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["entry1"] != null && Request.QueryString["entry2"] != null)
{
input1.Value = Request.QueryString["entry1"];
input2.Value = Request.QueryString["entry2"];
CompareFSUI();
}
}
protected void BtnClick(object sender, EventArgs e)
{
string url = Request.Url.AbsolutePath;
if(count == 0)
{
count++;
Response.Redirect(url + "?" + "entry1=" + input1.Value + "&entry2=" + input2.Value);
} else {
//the code makes it here the second button click)
count++;
//but the values of input1 & input2, though changed by the user, go back to original submission of first button click (original url w/ entry's)
Response.Redirect(url + "?" + "entry1=" + input1.Value + "&entry2=" + input2.Value);
}
}
protected void CompareFSUI()
{
String lasx_guid = Guid.NewGuid().ToString();
(continues to update parts of asp placeholder from here on)
<input type="text" name="Input 1" id="input1" runat="server" />
<input type="text" name="Input 2" id="input2" runat="server" />
<asp:Button ID="Fetch" class="btn btn-secondary" runat="server" Text="Compare" OnClick="BtnClick" />
答案 0 :(得分:0)
if和else块中的代码是相同的。您基本上采用相同的值并再次重定向回相同的形式。这使得文本框具有相同的值
当前强>
初始阶段:没有价值观 设置值并单击按钮:使用输入值重定向到同一页面并再次将其检索回输入。
<强>正确强> 在pageLoad中,将值转换为变量,而不是将它们放回到文本框中。还应该在btnClick内部进行比较,而不是将用户重定向回具有相同值的同一页面。
伪代码如下: -
pageLoad
if(!IsPostback) {
// get from query string and populate textboxes.. Compare
var entry1 = Request.QueryString["entry1"]; ...
Compare()
}
btnClick() {
// get from textboxes
var entry1 = input1.Value; ....
Compare();
}
答案 1 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["entry1"] != null &&
Request.QueryString["entry2"] != null)
{
input1.Value = Request.QueryString["entry1"];
input2.Value = Request.QueryString["entry2"];
CompareFSUI();
}
}
}