我的 .NET 技能不是很好,但我被一个小问题难住了,我找不到任何能以我理解的方式解释这一点的东西。基本上,我正在尝试使用来自 CMS 的当前值预填充表单,并在提交表单时更新这些值。它本质上只是网站一部分的“编辑”工具。
我有一个用户控件,其中包含一些这样的表单输入:
<label for="">Raised by</label>
<asp:TextBox ID="RaisedBy" runat="server"></asp:TextBox>
然后我有一个代码隐藏页面,它从 CMS 中提取值并使用已为此记录存储的值填充此表单,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
// ...Some logic here gets the node from the CMS and I can pull property values from it. This part works fine.
string raisedBy = node.GetProperty("raisedBy").ToString();
// Populate form input with value from CMS. This works.
RaisedBy.Text = raisedBy;
}
所以这很好。但是当提交表单时,它会调用以下代码:
protected void edit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
// Get edited value of input field
string RaisedByVal = RaisedBy.Text;
// Do some logic here to set up the CMS to be able to save the property - this works although it uses the original value of the form not the modified value if the user has changed it.
pageToEdit.getProperty("raisedBy").Value = RaisedByVal;
}
}
问题是如果用户编辑了原始表单值而不是修改后的值,它们将被保存回系统。
谁能建议我做错了什么以及如何使用修改后的值而不是原始值?
非常感谢。