小编mar*_*are的帖子

使用Javascript/jQuery进行同步GET请求

我有一个函数,它使得ajax GET请求和基于返回的值设置一个全局JS变量.我使用这个变量(下面的代码中的isCalculateTax)进行进一步处理:

var isCalculateTax;

function setCalculateTaxValue(taxStatementId) {
 $.get('/taxstatements/calculatetax/' + taxStatementId, function (data) {
  isCalculateTax = data.isCalculateTax;
 });
}

$(document).ready(function () {
 // initially check the tax statements dropdown to see which one is selected
 // and set the isCalculateTax to the right value
 var taxStatementId = $('#taxStatements').val();
 setCalculateTaxValue(taxStatementId);
 enumerateDocumentItems(isCalculateTax);
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,当enumerateDocumentItems()被调用并执行时,isCalculateTax尚未从AJAX GET请求更新,因此我收到了不可预测的结果.

如何在执行enumerateDocumentItems()之前等待必要的时间,以便isCalculateTax正确?

javascript jquery

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

解析带有double.TryParse奇怪行为的数字

为什么double.TryParse()这些设置不会解析

double.TryParse("1.035,00",
NumberStyles.AllowCurrencySymbol | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite |
NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
GlobalSettings.Instance.DefaultCulture, out price);
Run Code Online (Sandbox Code Playgroud)

其中DefaultCulture是sl-SI(斯洛文尼亚语),其中点.为数字分组符号,并为小数点.该price遗骸0的解析之后.

c# parsing

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

dvcs部分合并(git,hg合并跟踪)

我有一个关于一般DVCS的问题,包括Git和Hg.

在Git和Hg中,合并跟踪是在"提交"级别而不是"文件/目录"级别完成的.

其中一个"副作用"是您不能轻易进行"部分合并":

  • 您已在分支"feature_branch_x"中修改了30个文件
  • 你想只合并(让我们说)/ kernel/gui下的文件

使用"基于项目的合并跟踪"(Perforce,ClearCase,Plastic SCM <= 3.0),您可以选择要合并的几个文件,然后签入,然后重复合并,将显示待处理文件.

使用Hg,Git:一旦你合并(有方法保存文件而不合并),设置"跟踪",如果你重复合并,则不会留下合并的候选者.

我的问题是你对此感觉如何?

是否存在您认为"部分合并"是强制性的情况?你可以没有它吗?(与commit/cset级别跟踪合并要快得多).

免责声明:我为Plastic SCM工作,我们已经转向4.0中的"cset"级别跟踪,但我们想知道保持"项目级别合并跟踪"或者两者兼而有之是不是一个好主意.

git mercurial plasticscm dvcs

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

序列化/反序列化对象 - 字段的顺序很重要?

DataContractSerializer如果字段不在"正确"(无论是什么意思)顺序中,是否可能错误地反序列化对象?

我尝试序列化/反序列化的类没有在字段/属性上放置顺序属性.然而,我的一个字段总是被反序列化,null即使它具有非空值(它实际上包含字符串列表).

当我在序列化文件中移动两个XML元素以匹配另一个XML示例中的顺序时(反序列化工作没有问题)一切都开始工作.

这对我没有意义,但也许有人知道的更好.;)

.net c# serialization xml-serialization datacontractserializer

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

使用不区分大小写的字符串比较器初始化字典时序列化Dictionary <string,object>

我正在将Dictionary序列化为XML.当我创建一个新的字典时,我使用构造函数来提供没有外壳的EqualityComparer

var tabs = new Dictionary<string,Tab>(StringComparer.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

然后我序列化为XML,当我反序列化有关套管的信息丢失时 - 使用GenericEqualityComparer对字典进行反序列化,这显然是区分大小写的,因为如果它们没有正确套装,它就找不到我的密钥.

任何想法我怎样才能改变它?

一种方法是创建一个新的字典并将数据从反序列化复制到新的字典,但这似乎很麻烦.

更新:

反序列化一直在工作,只是它将序列化的字典序列化为不使用不区分大小写的键的字典.

c# dictionary xml-serialization .net-4.0

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

是否可以在EditorFor模板控件中使用DisplayFor()

EditorFor()在我的视图中使用帮助器来渲染编辑模板,我想调用DisplayFor()内部的这个模板来渲染显示模板.

像这样

这是在/Shared/EditorTemplates/Client.ascx中

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BusinessNext.Models.Ef.Client>" %>
<%: Html.DisplayFor(client=>client) %>
Run Code Online (Sandbox Code Playgroud)

在DisplayFor模板中,我渲染出客户端的属性.DisplayFor模板在从其他地方调用时工作得很好,但是从EditorFor模板调用它不会渲染任何东西.似乎DisplayFor()调用从未真正进入DisplayFor模板.

asp.net-mvc-2

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

在ASP.NET MVC中使用线程设置当前区域性

这是一个SetCulture属性的例子,里面做了这样的事情:

    public void OnActionExecuting(ActionExecutingContext
        filterContext)
    {
        string cultureCode = SetCurrentLanguage(filterContext);

        if (string.IsNullOrEmpty(cultureCode)) return;

        HttpContext.Current.Response.Cookies.Add(
            new HttpCookie("Culture", cultureCode)
            {
                HttpOnly = true,
                Expires = DateTime.Now.AddYears(100)
            }
        );

        filterContext.HttpContext.Session["Culture"] = cultureCode;

        CultureInfo culture = new CultureInfo(cultureCode);
        System.Threading.Thread.CurrentThread.CurrentCulture =
            culture;
        System.Threading.Thread.CurrentThread.CurrentUICulture =
            culture;
    }
Run Code Online (Sandbox Code Playgroud)

我想知道这对多个用户登录的网站有何影响,每个用户都设置了自己的文化?什么是范围在这里线程与问候到IIS工作进程(W3WP),该网站在运行?

iis asp.net-mvc iis-7 multithreading thread-safety

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

克隆没有序列化的对象

我在SO处找到了许多解决方案,而且是通过序列化/反序列化(进入内存和后退)来处理对象的深层克隆.

它要求克隆的类标记为[Serializable].我碰巧把我的类(大部分都是)标记为[DataContract]因为我使用DataContractSerializer序列化为XML.

我只介绍了[Serializable]属性,因为需要对其中一些类实例进行深度克隆.但是,现在通过DCS进行序列化/反序列化的事情发生了,因为它不再起作用了 - 关于在反序列化时期望不同的XML元素的错误.如果我删除了[Serializable]错误消失了.

我有什么选择?我只想尽可能简单地深入克隆我的对象.

c# clone xml-serialization datacontractserializer

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

具有MVC 4动作过滤器属性注入的Autofac

我正在使用Nuget MVC3集成软件包用于Autofac和MVC4.它主要工作(使用Controllers的构造函数注入很好)但它不会将注册服务注入动作过滤器属性.

这是我在Global.asax.cs中的注册:

builder.RegisterType<AspNetMembershipProviderWrapper>().As(typeof(IUserService)).InstancePerHttpRequest();
// 5) action filters
builder.RegisterType<SetCultureAttribute>().As<IActionFilter>().PropertiesAutowired().SingleInstance();
builder.RegisterFilterProvider();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)

然后在SetCultureAttribute我有这个:

public IUserService _userService { get; set; } // it doesn't get injected, null
Run Code Online (Sandbox Code Playgroud)

这也不适用于属性的构造函数:

_userService = DependencyResolver.Current.GetService<AspNetMembershipProviderWrapper>(); // always returns null
Run Code Online (Sandbox Code Playgroud)

DependencyResolver.Current.GetService() 当在动作过滤器的构造函数中调用时,也为所有其他注册服务返回null(我在Debug窗口中尝试了它来测试它).

所以我觉得有些事情不对.是否可以使用MVC3集成或者我应该使用MVC4 Nuget包(它说它是用于RC)?

还有什么我可以尝试使这项工作?

asp.net-mvc autofac asp.net-mvc-4

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

dotnet还原在新的基于csproj/msbuild的项目中更新?

在使用Visual Studio Code时,如何将新的基于csproj的项目的Nuget包更新为最新的?

这是我在.csproj文件中的内容:

<PackageReference Include="Microsoft.AspNetCore" Version="1.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.0.0" />
Run Code Online (Sandbox Code Playgroud)

如果我这样做dotnet restore只会安装指定的软件包版本.

没有dotnet restore update或没有dotnet nuget update选择.

所有上述引用的Microsoft.AspNetCore.*软件包都有更新的版本(1.1.0).

我想更新软件包并自动更新引用,就像在Visual Studio中一样.

nuget .net-core visual-studio-code

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