小编dan*_*wig的帖子

Knockout验证异步验证器:这是一个错误还是我做错了什么?

我非常喜欢Eric Barnard的淘汰验证lib与observable集成,允许分组,并提供自定义验证器可插拔性(包括即时验证器).有几个地方可以提供更多的UX灵活性/友好性,但总的来说,它有相当充分的文档...... 除了imo,它涉及到异步验证器.

今天我在这个问题上进行了搜索和着陆之前,我已经与它搏斗了几个小时.我我和原作者有同样的问题/问题,但同意不清楚duxa究竟要求的是什么.我想更多地关注这个问题,所以我也在这里问.

function MyViewModel() {
    var self = this;
    self.nestedModel1.prop1 = ko.observable().extend({
        required: { message: 'Model1 Prop1 is required.' },
        maxLength: {
            params: 140,
            message: '{0} characters max please.'
        }
    });
    self.nestedModel2.prop2 = ko.observable().extend({
        required: { message: 'Model2 Prop2 is required' },
        validation: {
            async: true,
            validator: function(val, opts, callback) {
                $.ajax({                                  // BREAKPOINT #1
                    url: '/validate-remote',
                    type: 'POST',
                    data: { ...some data... }
                })
                .success(function(response) {
                    if (response == true) …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous knockout-2.0 knockout.js knockout-validation

16
推荐指数
1
解决办法
6907
查看次数

IDbSet.Add和DbEntityEntry.State = EntityState.Added有什么区别?

在EF 4.1+中,这两行代码之间有区别吗?

dbContext.SomeEntitySet.Add(entityInstance);
dbContext.Entry(entityInstance).State = EntityState.Added;
Run Code Online (Sandbox Code Playgroud)

或者他们做同样的事情?我想知道是否可能会影响子集合/导航属性与另一个不同.

c# entity-framework-4.1 dbcontext

15
推荐指数
1
解决办法
2958
查看次数

ng-class不会删除在引导角度之前存在的类

仍然不到72小时即将加速角度.使用淘汰赛一段时间后,我不得不说这很有意思.我现在的问题与ng-class有关.

说我有以下内容:

<div class="myClass" ng-class="{myClass: false}">
Run Code Online (Sandbox Code Playgroud)

当angular bootstrap时,它不会删除之前渲染的myClass属性.我原以为它,因为这就是ko的css绑定所做的.似乎角度只会删除类,如果有角度是那个把它放在那里.

那么,有一个共同的解决方法吗?除了创建自定义指令?

angularjs angularjs-directive

15
推荐指数
1
解决办法
6238
查看次数

找到了与URL匹配的多种控制器类型.如果多个控制器上的属性路由与请求的URL匹配,则会发生这种情

...猜我是第一个问这个问题的人?

假设您有以下路由,每个路由在不同的控制器上声明:

[HttpGet, Route("sign-up/register", Order = 1)]
[HttpGet, Route("sign-up/{ticket}", Order = 2)]
Run Code Online (Sandbox Code Playgroud)

...你可以在MVC 5.0中使用除Order参数之外的相同代码执行此操作.但升级到MVC 5.1后,您会在问题标题中收到异常消息:

找到了与URL匹配的多种控制器类型.如果多个控制器上的属性路由与请求的URL匹配,则会发生这种情

那么新RouteAttribute.Order属性只是控制器级别?我知道在AttributeRouting.NET中你也可以这样做SitePrecedence.当所有操作都在同一个控制器中时,是否有获得上述路由的唯一方法?

更新

对不起,我应该提到这些路由是在MVC控制器上,而不是WebAPI.我不确定这会如何影响ApiControllers.

asp.net-mvc-controller attributerouting asp.net-mvc-5 asp.net-mvc-5.1

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

如何在.NET MVC3中注入用于验证的依赖项?

我们有很多验证方法需要访问存储库/数据库才能完成工作.到目前为止,我们一直在使用服务定位器模式(尽管很少)在自定义ValidationAttributes中完成此操作:

public override bool IsValid(object value)
{
    // use custom service locator in our app's infrastructure
    var repos = DependencyInjector.Current.GetService<IXyzRepository>();
    ...
}
Run Code Online (Sandbox Code Playgroud)

我知道这是:(作为一个反模式,我们想使用更正确的方法.我们使用统一,我读了这篇文章,说使用建立方法.但是接受的答案中的链接说文档已经过时(退役内容).

解决方案不需要使用验证属性,我想它可以使用IValidatableObject,但问题仍然存在:如何将依赖项注入模型.我们需要一个自定义模型绑定器吗?

另一种解决方案是在控制器中执行验证,其中依赖注入很容易.对我来说,这感觉很混乱.我希望模型在到达action方法时得到验证.

此外,我们有时使用[RemoteAttribute]在客户端上执行某些验证.目前,这些方法通过使用静态Validator.TryValidateObject方法构造视图模型并将验证委托给模型.

如何在不使用SL反模式的情况下完成需要注入依赖项才能完成工作的验证?

validation dependency-injection asp.net-mvc-3

14
推荐指数
1
解决办法
4402
查看次数

如何使用MVC3 FileContentResult避免重复的内容处置标头?

我们有一些文件存储在sql数据库中.在ASP.NET MVC3表单上,我们显示2个链接:

查看此文件| 下载此文件

这些链接转到这些相应的操作方法.下载按预期工作 - 单击链接会强制在浏览器中保存对话框.但是,显示会导致重复的内容处置标头发送到浏览器,导致Chrome出错,Firefox中出现空白页面.

[ActionName("display-file")]
public virtual ActionResult DisplayFile (Guid fileId, string fileName)
{
    var file = _repos.GetFileInfo(fileId);
    if (file != null)
    {
        Response.AddHeader("Content-Disposition", 
            string.Format("inline; filename={0}", file.Name));
        return File(file.Content, file.MimeType, file.Name);
    }
}

[ActionName("download-file")]
public virtual ActionResult DownloadFile (Guid fileId, string fileName)
{
    var file = _repos.GetFileInfo(fileId);
    if (file != null)
    {
        return File(file.Content, file.MimeType, file.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是发送到浏览器以显示操作的2个标头:

Content-Disposition: inline; filename=name-of-my-file.pdf
Content-Disposition: attachment; filename="name-of-my-file.pdf"
Run Code Online (Sandbox Code Playgroud)

我尝试更改自定义内容处置标头以用双引号包装文件名,但它仍然向浏览器发送了2个标头.我还尝试在添加自定义标头之前删除Content-Disposition标头,但是在返回FileContentResult之后会出现附件标头.

这段代码以前有用.我昨天进行了测试,发现它已不再适用于Chrome或Firefox.这可能是由于浏览器的更新.IE8和Safari仍然正确打开文件.

更新

再次感谢达林,你是对的.我们实际使用这种方法是因为您回答另一个问题.

关于如何最终解决这个问题的更多信息,我们有一个显示文件链接的自定义路由:

context.MapRoute(null,
    "path/to/display-file-attachment/{fileId}/{fileName}",
    new …
Run Code Online (Sandbox Code Playgroud)

download content-disposition asp.net-mvc-3

12
推荐指数
1
解决办法
9515
查看次数

如何只从我的应用程序访问WebAPI操作?

WebAPI的一个常见用例是使用MVC控制器呈现shell视图,其中包含javascript然后命中您的API以访问数据.

但是,假设您有一些昂贵的API操作,并且您不希望人们远程访问这些端点 - 您只希望应用程序提供的MVC视图访问它们.你怎么能保护他们?

在这种情况下Request.IsLocal不起作用,因为javascript是从他们的机器上的客户端浏览器调用它.即使它确实有效,你需要挖掘才能找到真正HttpContext的东西才能找到这个属性 - 而且这个解决方案在自托管的WebAPI中不起作用.

对于需要有效的API端点IPrincipal,您可以使用该[Authorize]属性保护它们.但是,您希望应用能够为匿名用户访问的API端点呢?

我已经尝试了一个解决方案并将其单独发布作为答案,因为我不确定它是否是最好的(甚至是好的)方法.

security asp.net-mvc asp.net-mvc-4 asp.net-web-api

12
推荐指数
1
解决办法
5051
查看次数

如何更改EF生成的类属性的[DisplayName]?

我们知道EF根据我们添加到.edmx文件的表生成类.哪个不会有[DisplayName] DataAnnotations.

如何在不修改生成的类的情况下添加此[DisplayName]?因为生成的类可以被覆盖如果我修改.edmx文件(重新添加修改的表),如果数据库更改.所以我不想修改生成类本身.

EF生成类

 public partial class Committee
    {
        public string Committee_Description { get; set; }
        public byte[] Committee_Id { get; set; }
        public string Rn_Descriptor { get; set; }
        public Nullable<System.DateTime> Rn_Create_Date { get; set; }
       ......
       .....
Run Code Online (Sandbox Code Playgroud)

视图

 <tr>
            <th>
                @Html.DisplayNameFor(model => model.Item2.GetEnumerator().Current.Committee_Name)
            </th>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework ef-database-first asp.net-mvc-4

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

为什么要加密Web配置文件?

据我所知,web.config文件中的任何部分都可以使用aspnet_regiis.exe进行加密和解密.

如果aspnet_regiis可用于解密web.config文件,那么加密它的重点是什么?是否只是将密码和敏感信息保存为纯文本?如果有文件和exe的任何人都可以解密它,它真的保护敏感的配置信息吗?

UPDATE

感谢所有关于机器钥匙的人.我问这个问题的原因是因为我们在codeplex.com上有一个开源项目.但是,我们还将此项目部署到Windows Azure.我试图找到一种最好的方法来保持敏感密码不受源代码控制,但是当我部署到Azure时,将它们作为我的项目的一部分进行访问.

目前,我正在使用Web配置转换来存储Azure连接字符串(以及system.net的Gmail密码).我创建了一个Web.PublishToAzure.config转换文件,并将该文件保留在源代码管理之外.我也发现这篇文章可能是更好的选择.再次感谢.

asp.net encryption passwords web-config

11
推荐指数
4
解决办法
3276
查看次数

如何通过FragmentPagerAdapter将变量传递给Fragment?

我是一个机器人初学者,试图学习,这是我的第一个问题,所以请原谅我,如果问题太简单,请告诉我,如果我正在使用论坛不正确.

我有一个FragmentActivity使用包含viewpager的布局; 该活动创建一个MyFragmentPagerAdapter实例,它创建了几个MyFragment实例.所有都是support.v4版本.

我试图找到一种方法来传递一个整数值(表示用户之前做出的选择,实际上可能是一个可绘制的id)到片段.我正在使用一个意图将它传递给这个活动,我知道我可以使用bundle将FragmentPagerAdapter中的值传递给片段,但我找不到从活动到FragmentPagerAdapter的方法.我尝试了几种方法,包括更改构造函数但无法使其工作.

我错过了一些简单的事吗?做这个的最好方式是什么?

活动

    public class SecondActivity extends FragmentActivity {
      private MyIntegerAdapter1 mAdapter1;
      private ViewPager mPager1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        mAdapter1 = new MyIntegerAdapter1(getSupportFragmentManager());
        mPager1 = (ViewPager) findViewById(R.id.pager1);
        mPager1.setAdapter(mAdapter1);
Run Code Online (Sandbox Code Playgroud)

FragmentPagerAdapter

    public class MyIntegerAdapter1 extends FragmentPagerAdapter {
    public MyIntegerAdapter1(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            Fragment f1 = new IntegerFragment();
            Bundle args1 = new Bundle();
            args1.putInt("param", R.drawable.image1);
            args1.putInt("number", 1);
            f1.setArguments(args1);
            return f1;
    etc
Run Code Online (Sandbox Code Playgroud)

分段

    public class …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter

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