我正在开发一个asp项目(使用C#),我需要一种从地图(带文件)更新文件的方法。我用以下形式创建了一个asp:Content块:
<form id="editForm" runat="server">
<table class="table table-hover">
<tbody>
<tr>
<td><h4><asp:Label id="Label1" runat="server" Text="title"/></h4></td>
<td><asp:Textbox id="pageName" runat="server"/></td>
</tr>
<tr>
<td><h4><asp:Label id="Label3" runat="server" Text="pageurl"/></h4></td>
<td><asp:Textbox id="pageURL" runat="server"/></td>
</tr>
</tbody>
</table>
<div id="ckeditor_div" runat="server">>
<CKEditor:CKEditorControl ID="CKEditor1" runat="server">
</CKEditor:CKEditorControl>
</div>
<asp:Button ID="editButton" OnClick="Save" Text="save" runat="server"/>
<br>
<br>
<asp:Label id="resultLabel" runat="server" />
</form>
这个asp:Content块也有一个Page_Load方法和一个Save方法。
void Page_Load(Object Sender, EventArgs e)
{
if (!IsPostBack)
{
if (!string.IsNullOrEmpty(Request.QueryString["title"]))
{
string url = Request.QueryString["title"];
string[] htmlFile = System.IO.Directory.GetFiles(Server.MapPath("~/App_Data/"), url).Select(path => System.IO.Path.GetFileName(path)).ToArray();
//if file exists
if (htmlFile.Length > 0)
{
//get file contents
string contents = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/") + url);
//get's title
int tFirst = contents.IndexOf("<title>") + "<title>".Length;
int tLast = contents.LastIndexOf("</title>");
String nameResult = contents.Substring(tFirst, tLast - tFirst);
//get's editable code
int cFirst = contents.IndexOf("<div id='content'>") + "<div id='content'>".Length;
int cLast = contents.LastIndexOf("</div>");
String codeResult = contents.Substring(cFirst, cLast - cFirst);
//give CKEditor editable code to edit
CKEditor1.Text = codeResult;
//show page url
string sub = url.Substring(0, url.Length - 5);
pageURL.Text = sub;
pageName.Text = nameResult;
}
}
}
}
void Save(Object Sender, EventArgs e)
{
string newTitle = pageName.Text;
string newURL = pageURL.Text;
string editedURL = newURL.Replace(" ", "-");
string newCode = CKEditor1.Text;
}
当我运行页面时,表单将填充所选文件中的信息。这有效。更改了一些值并按Save后,将返回旧的原始值(加载时插入.Texts中的值)。我怎样才能获得新的,编辑过的值?我做错了吗?
编辑:没关系。忘了if(!IsPostBack)循环。现在,如果你能原谅我,我现在会萎缩起来哭泣。