小编kri*_*ian的帖子

从XslCompiledTransform.Transform输出中排除XML指令

我正在使用一个XsltCompiledTransformXML将一些XML转换为HTML片段(不是一个完整的HTML文档,只是我将在其他地方生成的页面中包含的DIV).

我正在进行如下转换:

StringBuilder output = new StringBuilder();

XmlReader rawData = BusinessObject.GetXml();
XmlWriter transformedData = XmlWriter.Create(output);

XslCompiledTransform transform = new XslCompiledTransform();

transform.Load("stylesheet.xslt");

transform.Transform(rawData, transformedData);

Response.Write(output.ToString());
Run Code Online (Sandbox Code Playgroud)

我的问题是转换的结果总是从这个XML指令开始:

<?xml version="1.0" encoding="utf-16"?>
Run Code Online (Sandbox Code Playgroud)

如何防止这种情况出现在我的转化数据中?

编辑:

我告诉XSLT我不希望它输出一个xml声明

<xsl:output method="html" version="4.0" omit-xml-declaration="yes"/>
Run Code Online (Sandbox Code Playgroud)

但这似乎对我的输出中出现的指令没有影响.

有趣的是,我的XML数据源和我的XSLT转换都指定自己UTF-8不是UTF-16.

更新: UTF-16似乎正在出现,因为我使用字符串(构建器)作为输出机制.当我将代码更改为使用MemoryStream而不是a时StringBuilder,我的UTF-8编码将被保留.我猜这与该string类型的内部工作方式以及它如何处理编码有关.

c# xml xslt xslcompiledtransform

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

在强类型MVC视图用户控件中使用值类型

我有一个MVC用户控件,具有以下基本结构:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Decimal>" %>

<%= Math.Round(Model) %>
Run Code Online (Sandbox Code Playgroud)

我使用它时会出现此错误消息:

编译器错误消息:CS0452:类型'decimal'必须是引用类型才能在泛型类型或方法'System.Web.Mvc.ViewUserControl'中将其用作参数'TModel'

有没有办法让这个工作(以某种方式欺骗框架将Decimal作为参考类型处理?)或者我正在尝试做的只是根本错误?

c# asp.net-mvc

4
推荐指数
2
解决办法
3551
查看次数

围绕SqlTransaction回滚的异常处理

我有两个存储过程,我想在事务中执行包装.由于各种原因,我需要在我的应用程序代码中而不是在数据库中处理事务.

目前,我的代码如下所示:

try
{
    using (SqlConnection conn = Connection())
    {
        conn.Open();

        using (SqlTransaction sqlTrans = conn.BeginTransaction())
        {
            try
            {
                using (SqlCommand cmd1 = new SqlCommand("Stored_Proc_1", conn, sqlTrans))
                {
                    cmd1.CommandType = CommandType.StoredProcedure;
                    cmd1.ExecuteNonQuery();
                }

                using (SqlCommand cmd2 = new SqlCommand("Stored_Proc_2", conn, sqlTrans))
                {
                    cmd2.CommandType = CommandType.StoredProcedure;
                    cmd2.ExecuteNonQuery();
                }

                sqlTrans.Commit();
            }
            catch
            {
                    sqlTrans.Rollback();

                    throw;
            }

        }

        conn.Close();
    }
}

catch (SqlException ex)
{
  // exception handling and logging code here...
}
Run Code Online (Sandbox Code Playgroud)

当其中一个存储过程引发错误时,我看到的异常消息如下所示:

Error message from raiserror within stored procedure.
Transaction count …
Run Code Online (Sandbox Code Playgroud)

.net c# sql transactions

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

ABCpdf nuget包XULRunner文件夹是否已损坏?

我正在尝试更新我(以前工作)的pdf创建Web应用程序以使用ABCpdf.NET和ABCpdf.NET Gecko Runtime nuget包.

我已经安装了两个软件包(都是版本8.1.1.6)但是当我运行我的应用程序时,我得到以下WebSupergoo.ABCpdf8.Internal.PDFException:

无法添加HTML:Gecko引擎遇到了无法恢复的错误.可能的原因:XULRunner文件夹已损坏或来自另一版本的ABCpdf.

在安装了ABCpdf.NET Gecko Runtime软件包之后,我得到了一个对话框,告诉我需要手动将XULRunner文件夹复制到我的输出目录中.为了实现这一点,我在我的应用程序.csproj文件中添加了以下内容:

  <Target Name="AfterBuild">
    <CallTarget Targets="CopyAbcpdfToDeployFolder" />
  </Target>
  <Target Name="CopyAbcpdfToDeployFolder">
    <ItemGroup>
      <SourceDir Include="$(ProjectDir)XULRunner\**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(SourceDir)" DestinationFolder="$(WebProjectOutputDir)\$(OutputPath)%(SourceDir.RecursiveDir)\XULRunner" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

(这似乎工作正常 - 构建后,XULRunner文件夹及其内容存在于我的bin文件夹中)

失败的代码行如下:

theDoc.AddImageUrl(url);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我搞定这个吗?

c# asp.net-mvc gecko xulrunner abcpdf

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

以编程方式添加用户控件不会创建其子控件

我在项目中有一个用户控件(.ascx),我在页面的Page_Load事件处理程序中以编程方式添加到页面中,如下所示:

Controls.Add(new MyProject.Controls.ControlWidget());
Databind();
Run Code Online (Sandbox Code Playgroud)

当我尝试从控件本身访问控件的子控件时,它们不存在.

public override void DataBind()
{
  myrepeater.DataSource = GetDataSource(); 
  // throws an exception because myrepeater is null

  base.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

如何访问用户控件的子控件?我已经尝试将一个对EnsureChildControls()的调用添加到我的DataBind()覆盖中,但这似乎没有什么区别.

c# asp.net user-controls

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

LINQ - 加入多个列表

我在这里查看了101 Linq示例,但我在该列表中看不到这样的内容.如果我在那里没有看到相关的例子,请链接到它.

如果我有这三个类:

class Student { int id; string name }
class Course { int id, string name }
class Enrolment { int studentId; int courseId; }
Run Code Online (Sandbox Code Playgroud)

我如何使用LINQ获取学生注册的课程列表?(假设我有一个所有三个类的IList)

c# linq

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

识别Sharepoint文档库中的"Forms"文件夹

我正在开发一个应用程序,显示Sharepoint文档库中的文件和文件夹列表.文件/文件夹列表是基于SPList RootFolder.SubFolders.Files集合创建的.

有没有办法从结果中过滤掉"Forms"文件夹,而无需硬编码检查名为forms的文件夹

c# asp.net sharepoint

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

具有多个XML输入文件的XSLT转换

是否可以对多个输入XML文件执行转换?

它似乎不可能使用XslCompiledTransform,但是有没有其他方法来应用XSLT?

c# xml xslt xslcompiledtransform

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

Muenchian Grouping - 节点内的组,而不是整个文档中的组

我正在尝试在我的XSLT中使用Muenchian分组来对匹配的节点进行分组,但我只想在父节点内进行分组,而不是在整个源XML文档中进行分组.

给出XSLT和XML如下(对我的示例代码的长度表示道歉):

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> 
 <xsl:output method="html" indent="yes"/>

 <xsl:key name="contacts-by-surname" match="contact" use="surname" />
 <xsl:template match="records">
  <xsl:for-each select="contact[count(. | key('contacts-by-surname', surname)[1]) = 1]">
   <xsl:sort select="surname" />
   <xsl:value-of select="surname" />,<br />
   <xsl:for-each select="key('contacts-by-surname', surname)">
    <xsl:sort select="forename" />
    <xsl:value-of select="forename" /> (<xsl:value-of select="title" />)<br />
   </xsl:for-each>
  </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

XML

<root>
 <records>
  <contact id="0001">
   <title>Mr</title>
   <forename>John</forename>
   <surname>Smith</surname>
  </contact>
  <contact id="0002">
   <title>Dr</title>
   <forename>Amy</forename>
   <surname>Jones</surname>
  </contact>
  <contact id="0003">
   <title>Mrs</title>
   <forename>Mary</forename>
   <surname>Smith</surname>
  </contact>
  <contact id="0004">
   <title>Ms</title>
   <forename>Anne</forename>
   <surname>Jones</surname>
  </contact>
  <contact …
Run Code Online (Sandbox Code Playgroud)

xml xslt xsl-grouping muenchian-grouping

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

SQL Server复制测试

我想编写一个sql脚本来进行基本的冒烟测试,以检查我的服务器上的复制设置是否正确.

我认为针对应该复制的表的一组简单的CRUD操作将实现我所追求的目标,我想工作流将看起来像这样:

  1. INSERT 一行到发布者数据库中的复制表
  2. 等待复制作业运行?
  3. 检查订户数据库中表中是否存在该行

我的问题是,我该如何做第2步?我想我可以通过查看msdb..sysjob*表格查看相关工作上次执行的时间,但我不确定这是解决问题的最佳方法.

sql-server replication sql-server-2008 database-replication

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

Javascript VAR的问题

我遇到了以下代码的问题.如果我删除var user_idvar company_id,JavaScript的正常工作.

为什么这不起作用?

var user_id = user_id;  
var company_id = company_id;


if (pageNum == 1)
    strActionPage = CurrentPath + "upload.php?act=store&user_id=" + user_id;

else

    strActionPage = CurrentPath + "upload.php?act=store&company_id" + company_id;

for(i=0;i<4;i++){
    if(document.getElementsByName("ImageType").item(i).checked == true){
        strImageType  = i + 1;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

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