根据文档,该decimal.Round方法使用round-to-even算法,这对于大多数应用程序来说并不常见.所以我总是最终编写一个自定义函数来做更自然的圆半算法:
public static decimal RoundHalfUp(this decimal d, int decimals)
{
if (decimals < 0)
{
throw new ArgumentException("The decimals must be non-negative",
"decimals");
}
decimal multiplier = (decimal)Math.Pow(10, decimals);
decimal number = d * multiplier;
if (decimal.Truncate(number) < number)
{
number += 0.5m;
}
return decimal.Round(number) / multiplier;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这个框架设计决策背后的原因?
是否有任何内置的圆形半算法实现到框架中?或者可能是一些非托管Windows API?
对于初学者而言,这可能会产生误导,因为他们只是写了一个decimal.Round(2.5m, 0)期望3但结果是2.
我有一个字符串,表示我想要打印的非缩进XML.例如:
<root><node/></root>
Run Code Online (Sandbox Code Playgroud)
应成为:
<root>
<node/>
</root>
Run Code Online (Sandbox Code Playgroud)
语法突出显示不是必需的.为了解决这个问题,我首先转换XML以添加回车符和空格,然后使用pre标签输出XML.为了添加新行和空格,我编写了以下函数:
function formatXml(xml) {
var formatted = '';
var reg = /(>)(<)(\/*)/g;
xml = xml.replace(reg, '$1\r\n$2$3');
var pad = 0;
jQuery.each(xml.split('\r\n'), function(index, node) {
var indent = 0;
if (node.match( /.+<\/\w[^>]*>$/ )) {
indent = 0;
} else if (node.match( /^<\/\w/ )) {
if (pad != 0) {
pad -= 1;
}
} else if (node.match( /^<\w[^>]*[^\/]>.*$/ )) {
indent = 1;
} else {
indent = 0;
}
var padding = …Run Code Online (Sandbox Code Playgroud) 我正在寻找用于将ASP.NET Web应用程序项目(非 ASP.NET网站)部署到生产中的不同技术/工具?
我对持续集成构建服务器在某个位置删除二进制文件的时间与第一个用户请求命中这些二进制文件的时间之间发生的工作流程特别感兴趣.
您使用的是某些特定工具还是只使用XCOPY?如何打包应用程序(ZIP,MSI,...)?
首次部署应用程序时,如何设置应用程序池和虚拟目录(您是手动创建还是使用某些工具创建它们)?
当静态资源发生更改(CSS,JS或图像文件)时,您是重新部署整个应用程序还是只重新部署修改后的资源?汇编/ ASPX页面何时更改?
您是否跟踪给定应用程序的所有已部署版本,如果出现问题,您是否有将应用程序恢复到先前已知工作状态的过程?
随意完成以前的列表.
以下是我们用于部署ASP.NET应用程序的内容:
@* Omitted code.. *@
@RenderBody()
@RenderSection("Sidebar", required: false)
Run Code Online (Sandbox Code Playgroud)
Omitted code如果RenderSection Sidebar存在与否,有没有办法知道该部分?
我想根据下面的asp.net MVC中的Html.TextBoxFor条件设置disable属性
@Html.TextBoxFor(model => model.ExpireDate, new { style = "width: 70px;", maxlength = "10", id = "expire-date" disabled = (Model.ExpireDate == null ? "disable" : "") })
Run Code Online (Sandbox Code Playgroud)
该助手有两个输出禁用="禁用"或禁用="".两个主题都使文本框禁用.
如果Model.ExpireDate == null,我想禁用文本框,否则我想启用它
假设我们将.click()处理程序附加到回调中的anchor(<a>)标记$(document).ready.此处理程序将取消默认操作(跟随href)并显示警报.
我想知道的是,什么时候回调将会执行,并且用户可以点击锚点(文档已经在浏览器中显示),但事件尚未附加.
以下是包含锚点的不同HTML页面,但脚本的包含顺序不同.它们之间有什么区别(如果有的话)?不同的浏览器会表现不同吗?
第1页:
<html>
<head>
<title>Test 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('a').click(function() {
alert('overriding the default action');
return false;
});
});
</script>
</head>
<body>
<a href="http://www.google.com">Test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
第2页:
<html>
<head>
<title>Test 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
</head>
<body>
<a href="http://www.google.com">Test</a>
<script type="text/javascript">
$(function() {
$('a').click(function() {
alert('overriding the default action');
return false;
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
第3页: …
我创建了一个自定义验证属性:
public class FutureDateAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null|| (DateTime)value < DateTime.Now)
return false;
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用jquery在客户端使用它?
我正在OAuth 1.0(a)使用DotNetOpenAuth(NuGet包DotNetOpenAuth.OAuth.ServiceProvider, version = 4.1.4.12333)构建授权服务器.服务器托管在ASP.NET应用程序中,但这与问题无关.
我ServiceProvider的配置如下:
private ServiceProvider GetServiceProvider()
{
var baseUri = "http://myauth.com";
return new ServiceProvider(
new ServiceProviderDescription
{
UserAuthorizationEndpoint = new MessageReceivingEndpoint(
new Uri(baseUri + "/get_request_token"),
HttpDeliveryMethods.GetRequest
),
RequestTokenEndpoint = new MessageReceivingEndpoint(
new Uri(baseUri + "/authorize"),
HttpDeliveryMethods.PostRequest
),
AccessTokenEndpoint = new MessageReceivingEndpoint(
new Uri(baseUri + "/get_token"),
HttpDeliveryMethods.PostRequest
),
ProtocolVersion = ProtocolVersion.V10a,
TamperProtectionElements = new ITamperProtectionChannelBindingElement[]
{
new PlaintextSigningBindingElement(),
new HmacSha1SigningBindingElement(),
},
},
tokenManager,
new OAuthServiceProviderMessageFactory(tokenManager)
);
}
Run Code Online (Sandbox Code Playgroud)
我的get_request_token端点的相关部分如下所示: …
我正在为我的CSS使用dotlesscss而且我记得如何使用它,但我忘记的是如何获取根项目路径以便我可以生成我的.less文件的完整文件路径以获得更少的引擎来解析.如何获取项目根路径,以便为较少的文件生成路径?
我一直在网上搜索试图找出正确的语法,让实体框架代码首先用列创建我的表:varchar(max).
这就是我所拥有的.默认情况下,这会创建varchar(128).如何创建varchar(max)?
我试过[MaxLength]没有成功.
任何帮助,将不胜感激.谢谢!
[Column(TypeName = "varchar")]
public string MediaDesc { get; set; }
Run Code Online (Sandbox Code Playgroud) asp.net ×4
asp.net-mvc ×4
c# ×4
razor ×3
javascript ×2
jquery ×2
.net ×1
deployment ×1
html-helper ×1
path ×1
pretty-print ×1
rounding ×1
sql-server ×1
validation ×1
xml ×1
xslt ×1