javascript - htmleditorextender 无法上传图片

标签 javascript c# asp.net ajaxcontroltoolkit

我试图在 Web 表单中实现 Ajax 控制工具包 htmleditorexteder,但出现以下错误:

0x800a139e - JavaScript runtime error: Sys.ArgumentException: Cannot deserialize empty string.

我不知道这个错误是如何或为何发生的。我尝试在互联网上搜索但没有成功。如果您能提供任何建议,我们将不胜感激

而且对齐按钮似乎不起作用。当我将其切换到代码 View 时,它显示对齐属性,但不将文本向右或居中对齐,不知道为什么。

我的aspx:

<ajaxToolkit:HtmlEditorExtender EnableSanitization="true" ID="HtmlEditorExtender1" OnImageUploadComplete="HtmlEditorExtender1_ImageUploadComplete" DisplaySourceTab="true" TargetControlID="txtPost" runat="server">
                    <Toolbar>
                        <ajaxToolkit:Undo />
                        <ajaxToolkit:Redo />
                        <ajaxToolkit:Bold />
                        <ajaxToolkit:Italic />
                        <ajaxToolkit:Underline />
                        <ajaxToolkit:StrikeThrough />
                        <ajaxToolkit:Subscript />
                        <ajaxToolkit:Superscript />
                        <ajaxToolkit:InsertOrderedList />
                        <ajaxToolkit:InsertUnorderedList />
                        <ajaxToolkit:CreateLink />
                        <ajaxToolkit:UnLink />
                        <ajaxToolkit:RemoveFormat />
                        <ajaxToolkit:BackgroundColorSelector />
                        <ajaxToolkit:ForeColorSelector />
                        <ajaxToolkit:FontSizeSelector />
                        <ajaxToolkit:Indent />
                        <ajaxToolkit:Outdent />
                        <ajaxToolkit:InsertImage />       
                    </Toolbar>
                </ajaxToolkit:HtmlEditorExtender>
                <asp:TextBox ID="txtPost" runat="server" BackColor="White" CssClass="form-control" TextMode="MultiLine" Rows="30"></asp:TextBox>

我的代码:

protected void HtmlEditorExtender1_ImageUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{       
    string fullPath = "~/images/postAssets/" + e.FileName;
         // Save upload file to the file system
       HtmlEditorExtender1.AjaxFileUpload.SaveAs(MapPath(fullPath));
       e.PostedUrl = Page.ResolveUrl(fullPath);
}

编辑:

我尝试添加:

<httpHandlers>
  <add verb="*" path="AjaxFileUploadHandler.axd"
      type="AjaxControlToolkit.AjaxFileUploadHandler, 
      AjaxControlToolkit"/>
</httpHandlers>

按照答案之一的建议,但我收到以下错误:

HTTP Error 500.23 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.
Most likely causes:
•This application defines configuration in the system.web/httpHandlers section.

调试时 onImageUploadComplete 事件不会被触发,但我不知道为什么。

仍然坚持这些人,所以任何帮助将非常感激,我完全不知所措。

终于有一些好消息了:)

我终于让图片上传工作了!耶! 我将以下内容添加到我的 web.config 文件中:

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
  <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</handlers>
<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="4294967295"/>
  </requestFiltering>
</security>

<httpHandlers>
  <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</httpHandlers>

但是

文本对齐按钮仍然只向左对齐,生成如下 html:

<p align="right">This is some test</p>

但它实际上并没有将文本向右对齐?无论如何我可以改变这个,所以它会产生:

<p style="text-align:right">This is some text</p>

如果我手动输入html,我可以使用上面的html行使其对齐,但是使用该表单的人对html和css的知识为零,并且没有学习的兴趣。这就是我首先使用此控件的原因。 还有一种方法可以让它在任何编辑之前自动将以下内容添加到文本框中,所有用户输入都会进入其中?:

<div class="row"><div class="col-sm-12">
<!-- html editor extender content goes here -->
</div></div>

我的最终请求并不是那么重要,但文本对齐按钮至关重要,所以我绝对需要那些工作

最佳答案

您需要为此添加配置设置。你可以这样做......

<system.web>
....
<httpHandlers>
    <add verb="*" path="AjaxFileUploadHandler.axd"
      type="AjaxControlToolkit.AjaxFileUploadHandler, 
      AjaxControlToolkit"/>
</httpHandlers>

您可以从此链接中获取想法,其中使用不同的控件会出现相同的问题。

在这篇文章中,它以更好的方式解释它。

希望这对您有帮助。

谢谢

关于javascript - htmleditorextender 无法上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347954/

相关文章:

c# - 防止在调整 Windows 窗体大小时重绘控件

c# - 如何指定要返回的 SQL 层次结构级别?

javascript - 如何在 JS 中替换子字符串的所有实例但仅替换整个世界?

JavaScript 根据用户当前时间输出文本

javascript - applescript 尝试填写网络表单时出现预期的行尾错误

c# - 从范围引用了类型为 'x' 的变量 'Product',但未定义

javascript - Kendo Grid 过滤器使用带有 column.values 的组合框而不是下拉列表

c# - 禁止调整 Windows Forms 窗体的大小

c# - ASP.NET:如何允许用户对 gridview 列进行重新排序?

c# - ASP.NET 4.5 C# Forms 身份验证访问拒绝登录页面