小编Sim*_*ver的帖子

如何在Actionscript中检查两个对象是否属于同一类型?

我想在Actionscript中这样做:

typeof(control1) != typeof(control2)
Run Code Online (Sandbox Code Playgroud)

测试两个对象是否属于同一类型.这在C#中可以正常工作,但在Actionscript中它没有.事实上,它返回'object'两个typeof()表达式,因为这就是Actionscript的工作方式.

我似乎无法通过查看调试器或typeof()在Actionscript 中描述的页面找到替代方案.

有没有办法获得实际的运行时类型?

actionscript typeof

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

当你删除()一个元素并在其他地方附加()时,jQuery中的事件是否会丢失?

当你删除()一个元素并在其他地方附加()时,jQuery会发生什么?

看起来这些事件都是脱钩的 - 好像你只是插入了新的html(我猜这是发生了什么).但它也可能我的代码中有一个错误 - 所以我只想在继续之前验证这种行为.

如果是这种情况 - 是否有任何简单的方法可以将事件重新组合到HTML的那一部分,或者以不同的方式移动元素而不会丢失事件.

javascript jquery dom event-handling javascript-events

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

我还需要在CSS Sprite中填充图像吗?

在CSS Sprites中,您经常会在每个图像之间找到填充.我相信这个想法是这样的,如果页面调整大小,那么一个图像不会流入另一个图像.

我认为这取决于不同类型的浏览器缩放(最好由Jeff解释).

但是,我在测试中未能看到这种行为.这只是旧版浏览器的问题吗?(我目前无法使用IE6进行测试,因此我将其视为"旧").

我还要担心留空吗?这是一种痛苦.

例如 :

我找到的AOL的CSS Sprite在每个图像之间都有填充:VIEW

但The Daily Show决定不打扰:VIEW

css-sprites

21
推荐指数
2
解决办法
3772
查看次数

为什么ASP.NET MVC在数据绑定期间关心我的只读属性?

编辑:添加了赏金,因为我正在寻找除此之外的MVC3解决方案(如果存在):

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;


我的"地址"模型上有一个只读属性'CityStateZip'.

这是从美国地址获取城市,州,邮政的便捷方式.如果该国家不是美国(调用者应首先检查),则会抛出异常.

    public string CityStateZip
    {
        get
        {
            if (IsUSA == false)
            {
                throw new ApplicationException("CityStateZip not valid for international addresses!");
            }

            return (City + ", " + StateCd + " " + ZipOrPostal).Trim().Trim(new char[] {','});
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的模型的一部分,所以它受到约束.在ASP.NET MVC2 RC2之前,此字段在数据绑定期间从未引起过问题.我从来没有真正想过它 - 毕竟它只是只读.

现在虽然在2010年1月的RC2版本中,它在数据绑定期间给出了一个错误 - 因为默认模型绑定器似乎想要检查此值(即使它是只读的).

它是'base.OnModelUpdated'行导致触发此错误.

public class AddressModelBinder : DefaultModelBinder
{
    protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        base.OnModelUpdated(controllerContext, bindingContext);
Run Code Online (Sandbox Code Playgroud)

最后几分钟对模型绑定器的更改显然导致了行为的这种变化 - 但我还不确定它的重现是什么 - 或者这是否是一个错误?我正在将此传递给MVC团队,但好奇是否有人在此期间有任何建议我如何阻止此属性绑定.

这篇文章非常值得一读 - 但是根本没有提到readonly属性(不是我期望的).问题(如果有的话)可能比这种情况更广泛 - 我只是不确定是否有任何反复 - …

asp.net-mvc modelbinders asp.net-mvc-2

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

为什么Image.FromFile有时会保持文件句柄打开?

我在ASP.NET应用程序中使用.NET中的GDI +进行了大量的图像处理.

我经常发现Image.FromFile()保持文件句柄打开.

为什么是这样?在没有保留文件句柄的情况下打开图像的最佳方法是什么.

  • 注意:我没有做任何愚蠢的事情,就像保持Image对象一样 - 即使我是,我也不希望文件句柄保持活动状态

gdi+ filehandle

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

建议使用文件扩展名创建ActionResult的方法

我需要在ASP.NET MVC应用程序中创建一个具有.csv文件类型的ActionResult.

我将向我的营销合作伙伴提供"不要打电话"的电子邮件列表,我希望它在文件类型中具有.csv扩展名.然后它将自动在Excel中打开.

 http://www.example.com/mailinglist/donotemaillist.csv?password=12334
Run Code Online (Sandbox Code Playgroud)

我已成功完成以下操作,但我想确保这是绝对最佳和推荐的方法.

    [ActionName("DoNotEmailList.csv")]
    public ContentResult DoNotEmailList(string username, string password)
    {
            return new ContentResult()
            {
                Content = Emails.Aggregate((a,b)=>a+Environment.NewLine + b), 
                ContentType = "text/csv"
            };
    }
Run Code Online (Sandbox Code Playgroud)

这个Actionmethod会响应上面的链接就好了.

我只是想知道是否有任何意外冲突的任何不同版本的IIS,任何类型的ISAPI过滤器,或任何我现在无法想到的文件扩展名.

我需要100%肯定,因为我会向外部合作伙伴提供这个,并且不想在以后改变主意.我真的看不出任何问题,但也许有些东西模糊不清 - 或者更像"MVC"这样做的方式.

asp.net-mvc actionresult

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

jQuery断言支持/防御性编程?

在jQuery中是否有任何内置支持用于基本断言检查,主要是"预期的返回元素数量"之类的东西.

例如,我可能有这样一个简单的陈述:

 $("#btnSignup").click(function() {
     return validateForm();
 );
Run Code Online (Sandbox Code Playgroud)

现在有很多理由$("#btnSignup")可能无法正确返回1项:

  • 您错误输入了按钮ID名称
  • 有人错误地重命名了
  • 它不存在于页面上
  • 错误地有两个带有id的元素
  • 您正在使用ASP.NET MVC,你意外地生成按钮的HTML HtmlHelper.Button(...)代替HtmlHelper.Submit().该Button(...)方法不会为按钮元素创建ID.

现在在这个实例(和许多实例)中,除非从选择器返回一个项目,否则我的应用程序将无法工作.所以我总是想被告知是否$("@#btnSignup")不返回1项.那我怎么能这样做?!我很好,如果这是一个例外或最好是一个警告框 - 所以如果我没有在调试器中运行,那么我可以被告知.

我正在寻找这样的语法 - 它的功能类似于.NET的Single()扩展方法.

 $("#btnSignup").assertSingle().click(function() {
     return validateForm();
 );

 or 

 $("#btnSignup").assertSize(1).click(function() {
     return validateForm();
 );
Run Code Online (Sandbox Code Playgroud)

我个人对此代码总是运行良好并且告诉那里存在问题的人.对于所有永恒运行这个额外代码显然不是性能问题.在这种情况下,如果#btnSignup不存在,我的代码就会被破坏.

我确信这个问题已经被打死了,并且有很多解决方案 - 但是有人能指出我的一些吗?

我没有看到任何内置于jQuery中的内容,并想知道最好的插件是什么.我更愿意只是在页面上有一些东西能够"监视"我,并告诉我是否有问题.我甚至不反对对错误报告服务进行AJAX调用.

debugging jquery

18
推荐指数
2
解决办法
4088
查看次数

ASP.NET MVC应用程序中MS Ajax与jQuery的优缺点?

现在RC1已经出来了,我需要一劳永逸地决定是使用MS Ajax库还是只使用jQuery来进行AJAX请求.该应用程序是一个新的应用程序 基本上我决定的方式是我是否从微软库中获得了任何我从jQuery无法获得的重大好处.我已经有了jQuery加载,我担心文件大小的额外开销比什么都重要.

据我所知 - 唯一的好处是有帮助器Ajax.BeginForm,但也许这些可能会在某些时候使用jQuery吗?我的一位政府员工朋友今天也告诉我,MS Ajax库中有很多错误 - 这让我很担心.

随着微软现在正式成为jQuery的朋友,我不会太担心他们将来做任何事情,通过增强自己的库来让jQuery陷入困境.

我真的不知道MS Ajax究竟为我做了什么.是否存在某些利弊.或者支持'更新面板'只有90%的膨胀?

我也觉得非常有趣的是,ASP.NET MVC in Action一书只是跳过MS Ajax库并直接跳转到jQuery:

在本章中,读者将研究如何以比Web窗体更无缝的方式将ajax技术应用于ASP.NET MVC.读者将看到如何利用一个越来越流行的轻量级javascript库jQuery.

(来自AJAX的免费样本章节)

非常感谢任何人听到他们在两者中工作的经历,尤其是以下其他问题:

  • 是否很容易在两个库之间转换代码 - 假设相对简单的ajax要求?
  • 在两个库中调试都明显更好或更快
  • 有谁知道ASP.NET 4.0的进展情况以及任何宣布的可能对MVC有益的AJAX库计划?
  • 简而言之,MS AJAX可以为MVC应用做更多的事情而不是发送请求并将响应粘贴在DIV中?
  • 我如何做相当于Ajax.BeginForm(...)和使用jQuery?
  • 什么是你的交易杀手一种方式或另一种?
  • 大多数人在那里使用什么?

ajax asp.net-mvc asp.net-ajax

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

ASP.NET MVC 2中的空查询字符串参数的模型绑定

此处描述的行为现在似乎是ASP.NET MVC 2的默认行为(至少对于预览1).

当像这样对一个查询字符串进行模型绑定时:

 ?Foo=&Bar=cat 
Run Code Online (Sandbox Code Playgroud)

发生以下绑定(假设您绑定到具有'Foo'和'Bar'字符串属性的模型)

ASP.NET MVC 1

 model.Foo = "";
 model.Bar = "cat":
Run Code Online (Sandbox Code Playgroud)

ASP.NET MVC 2(预览1到RC)

 model.Foo = null;
 model.Bar = "cat":
Run Code Online (Sandbox Code Playgroud)

想要给任何正在玩V2的人提供一个单挑,因为这在' gu-notes '中没有提到.同样好奇的是,知道的任何人都可以评论这是否是最终实施或可配置功能?无论哪种方式我都很好但只是希望他们不要回到过去的方式!可配置会更好.

编辑:从这一点学习的教训是你正在开发的任何版本,不要编写代表Foo.Length == 0来测试空字符串或Foo.Length> 3以检查最小长度.使用string.IsNullOrEmpty(Foo)和/或首先检查null.


更新:这个问题激起了我对他们为什么会真正做出这种改变的好奇心.我认为在研究残疾人控制时我偶然发现了答案.W3 HTML规范定义了" 成功控制 ",如下所示:

成功的控制对于提交是"有效的".每个成功的控件都将其控件名称与其当前值配对,作为提交的表单数据集的一部分.必须在FORM元素中定义成功的控件,并且必须具有控件名称.

换句话说 - 成功的控件是将其作为查询字符串参数返回服务器的控件.现在,如果控件没有有效值,那么根据规范:

如果控件 在提交表单时没有当前值,则用户代理不需要将其视为成功控件.

(在这里找到'开放式解释'语言'不要求......')

所以我认为通过发送null而不是空字符串,它可以减少某些浏览器可能发送的浏览器不兼容性,Foo=&Bar=而其他浏览器可能甚至不会发送该查询字符串参数.通过总是解释Foo=好像Foo不存在,所以你要更加防守.

我认为我至少在正确的轨道上找到了原因 - 至少在某种程度上与'成功控制'的概念有关.

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

asp.net-mvc preview modelbinders

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

使用缓存配置文件缓存ChildActions不起作用?

我正在尝试使用缓存配置文件缓存我的mvc应用程序中的子操作,但我得到一个例外:持续时间必须是正数.

我的web.config看起来像这样:

<caching>
      <outputCache enableOutputCache="true" />
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="TopCategories" duration="3600" enabled="true" varyByParam="none" />
        </outputCacheProfiles>
      </outputCacheSettings>
</caching>
Run Code Online (Sandbox Code Playgroud)

而我的孩子的动作是这样的:

[ChildActionOnly]
[OutputCache(CacheProfile = "TopCategories")]
//[OutputCache(Duration = 60)]
public PartialViewResult TopCategories()
{
    //...
    return PartialView();
}
Run Code Online (Sandbox Code Playgroud)

我只是打电话给一个视图 @Html.RenderAction("TopCategories", "Category")

但是我收到一个错误:Exception Details:System.InvalidOperationException:Duration必须是一个正数.

如果我不使用缓存配置文件,它的工作原理.知道问题是什么?

asp.net-mvc caching

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