我正在尝试使用RegisterStartUpScript.NET 3.5中的MS ScriptManager 的方法将SQL Server异常的输出传递给客户端.这适用于某些错误,但当异常包含单引号时,警报失败.
我不想只是逃避单引号.是否有一个标准函数我可以调用以逃避任何特殊字符在JavaScript中使用?
string scriptstring = "alert('" + ex.Message + "');";
ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", scriptstring , true);
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢@tpeczek,代码几乎为我工作:)但稍微修改(单引号的转义)它是一种享受.
我在这里包括了我的修改版本......
public class JSEncode
{
/// <summary>
/// Encodes a string to be represented as a string literal. The format
/// is essentially a JSON string.
///
/// The string returned includes outer quotes
/// Example Output: "Hello \"Rick\"!\r\nRock on"
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string EncodeJsString(string s)
{ …Run Code Online (Sandbox Code Playgroud) 我有一些代码,我需要两个单独的必需字段验证器用于一个控件,两个都在单独的验证组中,然后由两个单独的按钮验证.
单击按钮时这种方法很有效但两个验证器都显示我是否在文本框中输入了一个值然后将其删除.
有没有办法将这个"失去焦点"的验证关闭?我只需要它来验证点击按钮的时间.
编辑
不幸的是,如果我设置EnableClientScript = false,那么我没有任何客户端通知.我想要的是显示动态错误消息(有效地显示在按钮的OnClientClick事件中),而不是文本框的"丢失焦点".
有什么方法可以禁用或"解开"lostfocus客户端事件?
编辑
结合dDejan的答案和womp的回答这里完美地排序了问题.
我的最终代码看起来像这样(对于有类似情况的其他人)......
JavaScript的...
<script type="text/javascript">
$(document).ready(function() {
$('body').fadeIn(500);
//Turn off all validation = its switched on dynamically
$.each(Page_Validators, function(index, validator) {
ValidatorEnable(validator, false);
});
});
function ToggleValidators(GroupName) {
$.each(Page_Validators, function(index, validator) {
if (validator.validationGroup == GroupName) {
ValidatorEnable(validator, true);
} else {
ValidatorEnable(validator, false);
}
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
ASPX控件示例...
<telerik:RadTextBox Width="196px" ID="txtFirstName" runat="server" MaxLength="50" Skin="Black"></telerik:RadTextBox>
<asp:RequiredFieldValidator ID="valFirstName" CssClass="Validator" runat="server" EnableClientScript="true" Display="Dynamic" ErrorMessage="You must enter your first name." …Run Code Online (Sandbox Code Playgroud) 我有以下LINQ查询,它使用NHibernate对SQL Server支持的存储库...
var casesByCaseOwner = this.preGrantDetailRepository.All
.Where(x => x.CaseFileLocation.Id == cflId)
.GroupBy(x => x.CaseOwner)
.Select(x => new StagSummaryForCfItem
{
Id = x.Key.Id,
Description = x.Key.Name,
NumberOfCases = x.Count(),
UninvoicedNetFee = x.Sum(y => y.UninvoicedNetFee),
UninvoicedDisbursement = x.Sum(y => y.UninvoicedDisbursement)
}).AsEnumerable();
Run Code Online (Sandbox Code Playgroud)
但是,它抱怨SQL Server无法按CaseOwner.Name列分组,因为它不包含在选择列表或组子句中.来自数据库世界我理解错误,但是,我不知道如何强制NHibernate按两者分组Id,Name但仍然CaseOwner可以在我的Select中使用该实体.
我们在Nancy的默认模型绑定器上遇到了问题.鉴于以下......
public class Foo
{
public Foo()
{
}
public string Name { get; set; }
public Bar Bar { get; set; }
}
public class Bar
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
像......这样的元素
<input type="text" value="Name" />
<input type="text" value="Bar.Name" />
Run Code Online (Sandbox Code Playgroud)
使用默认模型绑定器如此...
var foo = this.Bind<Foo>();
这正确绑定Foo.Name但无法绑定Foo.Bar.Name
有没有办法使用默认绑定器启用这种绑定,还是我们需要自己滚动?若有,那么有什么好例子吗?
我对单元测试相当新,但是我完全了解了测试执行特定的,可测试的任务的单个代码单元的想法,但是,我处在一个需要编写测试并对其准确性提供信心的位置.作用于具有50多个属性的对象的方法的输出.这些属性的值的组合基于从规则定义对象(使用lambda表达式)注入的规则产生输出,该规则基本上等于百分比.这些输出百分比是"关键任务"并且之前已经进行过相当严格的测试,例如规则定义类的质量(每个规则的所有可归因百分比加起来都达到100%)但是对象的实际属性没有是.
"数据"对象来自数据库,但我当然可以嘲笑它.我的问题是需要模拟的数据排列的数量和需要编写的测试数量,以确保数据x,y,z(乘以50奇数指数)几乎不可能.
所以,问题是,这些情况在真正意义上是如何测试的.基于已知"正确"状态的脚本测试和"正确"结果是否可能/合理?在这种情况下是否适用单元测试,如果没有,则有哪些替代方案.
顺便说一句,这是遗留代码,只有很少的重构机会,但只有在能够在几天的时间内保证准确性等同时进行重构和测试!
我从Visual Studio 2010 css模板稍微修改了以下代码.我的问题是我在chrome中的菜单控件的父div中获得了大约10px的额外顶部填充/边距.它在IE中很好用.这里发生了什么?
CSS
/* CSS RESET
----------------------------------------------------------*/
*{margin:0;padding:0;}
/* DEFAULTS
----------------------------------------------------------*/
body
{
background: #b6b7bc;
font-size: .80em;
font-family: "Helvetica Neue", "Lucida Grande", "Segoe UI", Arial, Helvetica, Verdana, sans-serif;
margin: 0px;
padding: 0px;
color: #696969;
}
a:link, a:visited
{
color: #034af3;
}
a:hover
{
color: #1d60ff;
text-decoration: none;
}
a:active
{
color: #034af3;
}
p
{
margin-bottom: 10px;
line-height: 1.6em;
}
/* HEADINGS
----------------------------------------------------------*/
h1, h2, h3, h4, h5, h6
{
font-size: 1.5em;
color: #666666;
/*font-variant: small-caps;*/
text-transform: none; …Run Code Online (Sandbox Code Playgroud) 我们目前有一个很好的关系型sql server 2008数据库,它是我们的主应用程序数据库.我们正在寻求改进现有的文档存储机制,该机制使用xml数据类型和更无模式的东西,可以处理类似但不相同的文档,并认为couchdb非常适合.
这个想法是关于文档的公共元数据可以存储在sql server中以便于显示/聚合/报告,但实际文档存储在沙发中以处理文档中的细微差别.我们的想法是充分利用两种不同的技术.
例如,创建的状态,类型,相关人员和日期在所有文档中都是通用的并存储在sql中,但是电子邮件和信件(显然具有不同的字段)可以存储在沙发中.
然后我们可以显示所有类型文档(数千个文档)的文档网格,这些文档可以通过sql查询,但是当用户请求查看时,doc的显示从沙发中获取数据.
需要记住的是,某些文档类型是从模板生成的,这些模板也是文档本身(想想邮件合并/查找和替换).
应用层是asp.net 4.5,c#,存储库模式,Windsor for ioc,JavaScript
那么,对于这个问题......
这种方法是否是充分利用两种不同数据存储范例的合理方法?
我们是否希望"使用最合适的技术解决问题",使我们的编程生活变得不必要复杂?
有没有人有尝试类似的东西的经验,如果有的话,它是怎么回事?
你能在Nancy有多个自定义模型绑定器吗?我需要绑定来自datatables jQuery插件的服务器端处理请求,这不适合我们当前的"mvc样式"自定义模型绑定器.特别是关于列表,数据表将它们表示为mylist_0,mylist_1等而不是mylist [0],mylist [1].
那么我可以添加另一个模型绑定器来处理这些不同的列表样式,如果我这样做,南希怎么知道使用哪一个?
不幸的是,我们没有本MSDN文章中提到的 SQL Server 所需的 DCOM 访问权限,但我们确实拥有 SQL Server 实例的完整管理权限。
因此,我们可以成功地将包部署到服务器并使用 SQL Server 代理运行它,但我不知道如何从服务器删除包。
我唯一能想到的就是从 MSDB 数据库中的 dbo.sysdtspackages90 表中删除该行,但这对我来说似乎有点极端(如果不是非常危险!)。
问题在于我们的服务器管理被外包,我们必须非常努力才能获得所需的访问权限 - 是否值得(可能需要 1 到 2 个月)昂贵的战斗,或者我可以通过其他方式获得我们需要的东西吗?
我们有一个解决方案,其中有多个项目代表我们的应用程序层.例如
域
数据
逻辑
WebUI中
我们的Castle Windsor容器从我们的Web层引用,然后我们将这些依赖项级联到层.例如...
// In Domain
public interface IFooRepository
{
void DoSomething();
}
// In Data
public class FooRepository : IFooRepository
{
public void DoSomething()
{
// Something is done
}
}
// In Logic
public class MyThingManager
{
private readonly IFooRepository fooRepository;
public MyThingManager(IFooRepository fooRepository)
{
this.fooRepository = fooRepository;
}
public void AMethod()
{
this.fooRepository.DoSomething();
}
}
// In Web
// in some controller....
var newManager = new MyThingManager(WindsorContainer.Resolve<IFooRepository>());
newManager.DoSomething();
Run Code Online (Sandbox Code Playgroud)
这很好用,直到我们的经理有很多成员有自己的依赖.当这种情况发生时,我们最终解决了管理者的依赖性和他们的依赖性,并将其从Web层级联起来.这个结果是一些相当大的构造函数.
是否有更优雅的方式,例如让经理的内部组件解决它自己的依赖性而无法访问容器?
请记住,只有Web层可以访问容器(以防止循环项目依赖),因此只有Web层可以激活WindsorContainer.Resolve()逻辑层不能这样才能级联依赖性的唯一方法容器帮助是在Web层中解决它,然后使用它的界面将其传递给链.
我在C#项目中有一个DataRow对象数组,我想从中总结各种字段.
我注意到DataRow [].Sum <>函数,而不是遍历每一行并总计我自己的总和,但我正在努力在网上找到关于如何使用它的任何资源.
任何正确方向的指针都会非常有用
:)删除代码示例,因为它是错误的!现在一切正常 - 链接帮助Marc欢呼.
我目前正在使用 NodeJs Web 服务按需运行一些 casper.js 脚本。因为 casper.js 使用 stdout 作为返回节点的通信通道,并且节点将 casper 作为子进程运行,所以我无法像对其他节点服务那样使用 nssm 将节点作为 Windows 服务运行,因此它在服务器启动时作为预定任务。
这有效,但现在我需要生产此代码,并且确实需要使其对崩溃更具弹性-即,如果服务失败,我需要重新启动该服务。
据我所知,我的选择是......
到目前为止,由于额外的托管主机,我想尽可能避免选项一。我找不到任何对选项二有帮助的东西,看起来 Windows 服务不能那样工作。
所以今天我尝试创建一个监视器服务,如果它没有响应心跳,它可以重新启动崩溃的服务。问题是我似乎无法弄清楚如何从另一个实例节点内启动一个完全独立的节点服务器。如果我要使用子进程,那么它仍然是服务和标准输出工作的子进程。
那么,是否可以在node中创建一个独立的进程呢?有没有其他建议可以解决这个问题?
我有一个Web服务代理,它使用用户名和密码调用另一个Web服务来验证代理所在站点的用户身份.所有"正常"表单身份验证都由代理处理但是它需要与远程Web服务后面的数据库,用于确定用户是否确实有效.出于安全性/强密码原因,我需要确保以区分大小写的方式将密码传递给远程服务.
目前它正在通过SSL发布http GET,但由于GET使用MVC网址,其中的详细信息并不区分大小写.
如果我将其更改为POST,我会获得区分大小写吗?
c# ×5
asp.net ×4
nancy ×2
aggregate ×1
ajax ×1
casperjs ×1
couchdb ×1
css ×1
encoding ×1
http-post ×1
javascript ×1
linq ×1
nhibernate ×1
node.js ×1
ssis ×1
unit-testing ×1
validation ×1
windows ×1