小编Chr*_*yne的帖子

C#HtmlEncode - ISO-8859-1实体名称与数字

根据以下对ISO-8859-1标准,似乎有一个实体的名称,并保留每个HTML字符相关联的实体数量.

例如,对于角色é:

实体名称 : é

实体编号: é

同样,对于角色>:

实体名称 : >

实体编号: >

对于给定的字符串,HttpUtility.HtmlEncode返回一个HTML编码的String,但我无法弄清楚它是如何工作的.这就是我的意思:

Console.WriteLine(HtmlEncode("é>"));
//Outputs é>
Run Code Online (Sandbox Code Playgroud)

它似乎使用了é字符的实体编号,但是字符的实体名称>.

那么HtmlEncode方法真的适用于ISO-8859-1标准吗?如果确实如此,是否有理由说它有时使用实体名称而有时使用实体编号?更重要的是,我可以强制它可靠地给我实体名称吗?

编辑: 谢谢你们的答案.我执行搜索之前无法解码字符串.在没有太多细节的情况下,文本存储在SharePoint列表中,"搜索​​"由SharePoint本身完成(使用CAML查询).所以基本上,我不能.

我试图想出一种将实体数字转换为名称的方法,.NET中是否有一个函数可以做到这一点?还是其他任何想法?

.net c# string encoding iso

10
推荐指数
1
解决办法
6171
查看次数

XML属性可以有空格吗?

我正在为xml文档创建一个DTD.我有一个xml元素的Enumerated属性.我的问题是:属性Type是否有空格?

例如:

  <!ELEMENT Link (#PCDATA)>
  <!ATTLIST Link Type (Amendment|Reference|Superseded|Modified|
  Corrigendum|Corresponds|Endorsement|Equivalent|Identical|Modified|
  Not Equivalent|Note taken of|Related|Similar) "Reference">
Run Code Online (Sandbox Code Playgroud)

所以我想要的是:

  <Link Type="Not Equivalent" \>
Run Code Online (Sandbox Code Playgroud)

但这似乎是barf.

我需要为空间做一些神奇的伏都教吗?还是只是运气不好?

我看了几个 地方,但看不到任何参考

谢谢!

更新

对不起 - 当我说barf时,我的意思是当我尝试验证文档时(例如在Web浏览器中打开它),我收到一条错误消息:在ATTLIST枚举中找到无效字符.处理资源'file:/// C:/myxmldocument.xml'时出错....

xml dtd

9
推荐指数
1
解决办法
2万
查看次数

C#,sp_executesql和不正确的语法

我正在调用下面的代码.

在线(IDataReader dr = cmd.ExecuteReader()) sql barfs 在'CompanyUpdate'附近使用不正确的语法.

   using (SqlCommand cmd = new SqlCommand("CompanyUpdate"))
        {
            cmd.Parameters.Add("@CompanyID",SqlDbType.Int);
            cmd.Parameters.Add("@Description",SqlDbType.VarChar,50);
            cmd.Parameters["@CompanyID"].Value = companyid;
            cmd.Parameters["@Description"].Value = description;

            SqlConnection cn = new SqlConnection("Data Source=[datasource];Initial Catalog=dotNext;User ID=[user];Password=[password];Pooling=True;Application Name=dotNext");
            cn.Open();
            cmd.Connection = cn;
            using (IDataReader dr = cmd.ExecuteReader())
            {
                if (dr.Read())
                {
                    this.CompanyID = dr.GetInt32(0);
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

我看了一下sqlprofiler并注意到以下内容:

exec sp_executesql N'CompanyUpdate',N'@CompanyID int,@Description varchar(50)',@CompanyID=56,@Description='APC'
Run Code Online (Sandbox Code Playgroud)

它用sp_executesql包装我的命令.我刚刚执行的所有其他sql命令都没有问题.

所以我的问题有两个:1.为什么使用sp_executesql?2.我做错了什么?

详细信息:sql2005,c#,vs2005

c# sql-server visual-studio-2005 sql-server-2005 sql-server-profiler

5
推荐指数
1
解决办法
4460
查看次数

在C#中发送带附件的邮件

我需要发送一封邮件,包括例外情况(黄色死亡屏幕)作为附件.

我可以得到YSOD如下:

string YSODmarkup = lastErrorWrapper.GetHtmlErrorMessage();
if (!string.IsNullOrEmpty(YSODmarkup))
{
    Attachment YSOD = Attachment.CreateAttachmentFromString(YSODmarkup, "YSOD.htm");
    mm.Attachments.Add(YSOD);
}
Run Code Online (Sandbox Code Playgroud)

mm是类型MailMessage,但不发送邮件.

这里

System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage("from", "to", "Exception-Details", htmlEmail.ToString());
Run Code Online (Sandbox Code Playgroud)

用于绑定邮件正文.

在此之后,仅添加附件.删除附件时,会发送邮件.

谁能帮我吗?


根据阿尔宾先生和保罗先生的评论,我正在更新以下内容

        string YSODmarkup = Ex_Details.GetHtmlErrorMessage();
        string p = System.IO.Directory.GetCurrentDirectory();
        p = p + "\\trial.txt";
        StreamWriter sw = new StreamWriter(p);
        sw.WriteLine(YSODmarkup);
        sw.Close();
        Attachment a = new Attachment(p);       

        if (!string.IsNullOrEmpty(YSODmarkup))
        {
             Attachment  YSOD = Attachment.CreateAttachmentFromString(YSODmarkup, "YSOD.html");
            System.Net.Mail.Attachment(server.mappath("C:\\Documents and Settings\\user\\Desktop\\xml.docx"));

             MyMailMessage.Attachments.Add(a);

        }  
Run Code Online (Sandbox Code Playgroud)

在这里,我将内容附加到文本文件并尝试相同.所以邮件没有发送.发送包含HTML标签的邮件是否有任何问题.因为我能够附加普通的文本文件.

.net c# email mailmessage

4
推荐指数
1
解决办法
1万
查看次数

使用.net编辑pdf中的javascript

是否可以使用.net编辑pdf文档的javascript?

我看过Acrobat SDK,但没有太多运气.看起来您可以从表单等中检索值,但不能编辑文档.

我离开赛道了吗?这甚至可能吗?

我已经尝试过iTextSharp,但由于pdf包含表单字段,因此在保存pdf时字段会丢失.

有什么建议?

.net pdf acrobat itextsharp

4
推荐指数
1
解决办法
2957
查看次数

在Dynamics CRM 2011中将发票标记为已付款

沿着这个问题的路线.

我正在尝试使用Silverlight将现有的Invoice标记为Dynamics CRM 2011中的付款.

根据文档,我需要做的就是设置状态代码= 100001和状态代码= 2.

当我这样做时,我得到一个"NotFound"异常.

Guid invoiceID = new Guid("Existing Invoice Guid");
IOrganizationService orgService = OrgServiceFactory.GetInstance();

orgService.BeginRetrieve("invoice", invoiceID, new ColumnSet(new string[] { "invoiceid", "statecode", "statuscode" }), (result) =>
{
    var fetchResp = orgService.EndRetrieve(result);

    var statecodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statecode");
    OptionSetValue statecode = (OptionSetValue)statecodeAttrib.Value;
    statecode.Value = 2; 


    var statuscodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statuscode");
    OptionSetValue statuscode = (OptionSetValue)statuscodeAttrib.Value;
    statuscode.Value = 100001;

    orgService.BeginUpdate(fetchResp, (updateResult) =>
    {
        /* Web Exception thrown here */ …
Run Code Online (Sandbox Code Playgroud)

c# silverlight dynamics-crm dynamics-crm-2011

3
推荐指数
1
解决办法
3233
查看次数

ASP.NET MVC和Ajax控件工具包

我喜欢编写"旧skool"(Web表单)的一个方面是AJAX Control Toolkit.

我在Microsoft Storefront视频14上看到,Rob Conery使用TextboxWatermark控件.

当我下载代码时,我找不到任何对Watermark控件或工具包中任何其他控件的引用,也无法让它工作.

所以我的问题是,AJAX控件工具包是否在没有viewstate的MVC/AJAX/JQuery类型世界中工作.您对"简单"控件(如日历和水印)使用了什么?

asp.net-mvc asp.net-ajax asp.net-mvc-beta1

1
推荐指数
1
解决办法
1万
查看次数