小编ali*_*c83的帖子

在MVC中,什么是ViewModel?

我是否正确地认为它几乎就像是视图所需的所有对象的包装器?

例如,假设您有一个销售音乐和DVD的在线商店.在您的浏览页面上,您需要显示所有dvds和音乐的列表.那么你会构造一个ViewModel对象,它有两个包含专辑列表和dvds列表的属性吗?

根据我的理解,你似乎拥有所有的模型类,即.一个专辑/ DVD类,但仅仅通过这些对你的视图来说是不够的.ViewModel是否基本上充当View所需的所有数据的载体?

asp.net-mvc

18
推荐指数
1
解决办法
9500
查看次数

表单验证 - 组中许多必需的一个

在我正在研究的项目中,目前我有三个文本框,我需要验证至少有一个文本框已经填充.

我一直在阅读Angular指令的自定义验证,我知道您可以使用以下命令设置指令链接函数中输入的有效性:

ctrl.$parsers.unshift(function(viewValue) {
  // validation logic here
});
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不需要设置单个输入的有效性.如果不符合标准,我需要使整个表单无效.我只是想知道如何处理这个问题?

我想也许我应该创建一个放在封闭表单上的指令,然后使表单无效?

我想我只是在寻找一些关于我应该怎么做的指导,因为我有点不清楚从哪里开始 - 我正在阅读自定义验证的所有材料似乎都是为了验证特定的输入而不是表格上的一系列条件.

我希望我已经清楚了!谢谢..

angularjs

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

返回500万条记录的查询需要多长时间?

我意识到答案应该是'尽可能少的时间',但我正在努力学习如何优化数据库,我不知道我的硬件可接受的时间是多少.

首先,我使用我的本地机器与sql server 2008 express的副本.我有一个双核处理器,2GB内存和64位操作系统(如果这有所不同).我只使用一个包含大约6个varchar字段的简单表.

起初我没有任何索引查询数据.这花了很长的时间,所以我取消并添加了一个聚集索引(使用PK)到表.这将时间缩短到1分14秒.我不知道这是否是我能得到的最好的,或者我是否还能进一步降低这一点?

我受限于我的硬件还是我可以对我的表/数据库/查询做些什么来更快地获得结果?

仅供参考我只使用标准的SELECT*FROM来检索我的结果.

谢谢!

编辑:只是为了澄清,我只是为了测试目的这样做.我不需要提取所有数据,我只是使用它作为一致的测试,看看我是否可以减少查询时间.

我想我要问的是:除了a)升级硬件和b)添加索引(假设架构已经很好)之外,我还能做些什么来加快我的查询性能?

sql database sql-server sql-server-2008

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

检测viewpager中的触摸/点击事件

我对Android开发很新,目前我正在使用viewpager,试图了解我如何处理触摸/点击事件.我整个上午都在寻找这个问题的答案,我似乎无法找到任何可以帮助我的东西.

基本上我有一个带有5个片段的viewpager,它们都使用相同的布局.我想要做的就是能够检测静止视图上何时有敲击/触摸(我不希望在拖动视图时发生任何检测).

从我收集的内容来看,ViewPager默认拦截所有触摸事件似乎存在问题.我相信这可以通过使用:

myPager.requestDisallowInterceptTouchEvent(true);
Run Code Online (Sandbox Code Playgroud)

起初我涉足OnTouchListener,并尝试记录onTouch方法是否被击中 - 它似乎没有.我也看到GestureDetector类作为这个问题的解决方案被抛出很多但坦率地说我感到不知所措,我不确定我应该在这里使用哪些类/接口.

我想做的就是在使用ViewPager时选择简单的触摸/点击事件.

目前我正在使用Android开发者网站的动画教程代码的修改版本.这是我在MainActivity.java文件中的内容:

package com.example.pbinteractive;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;

public class MainActivity extends FragmentActivity {
    /**
     * The number of pages (wizard steps) to show in this demo.
     */
    private static final int NUM_PAGES = 5;

    /**
     * The pager widget, which handles animation and allows swiping horizontally to access previous
     * and next wizard steps.
     */
    private ViewPager mPager;

    /**
     * …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

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

可以在youtube-api上使用modestbranding吗?

我正在尝试使用Youtube API将视频加载到我的页面上.

Youtube指定您可以通过将参数'&modestbranding = 1'附加到embed url来启用'适度品牌'(即删除youtube徽标).

我遇到的问题是新的youtube API使用javascript嵌入视频,例如:

  player = new YT.Player('player', {
    height: videoHeight,
    width: videoWidth,
    videoId: videoID,        
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
Run Code Online (Sandbox Code Playgroud)

然后,这会生成相关的iframe脚本,但我希望能够在这些参数中指定适度的品牌.我尝试添加一个额外的参数:

modestbranding: 1
Run Code Online (Sandbox Code Playgroud)

modestbranding: '1'
Run Code Online (Sandbox Code Playgroud)

但似乎都没有任何效果.

我意识到一个选项是从最终渲染的脚本中获取嵌入的URL,然后将参数附加到src:

<iframe frameborder="0" allowfullscreen="" id="player" title="YouTube video player" height="368" width="640" src="http://www.youtube.com/embed/<id>?enablejsapi=1"></iframe>
Run Code Online (Sandbox Code Playgroud)

但是我会认为youtube会以某种方式允许指定参数,而不是必须使用一些肮脏的黑客.

谁知道我怎么做到这一点?

javascript youtube-api

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

使用Umbraco 6.x中的Content Service API更新属性

我为Umbraco站点的后端创建了一个自定义用户控件,允许管理员快速更新节点上的某些字段,而无需浏览内容树.

到目前为止,我的代码正在按预期工作:我可以毫无问题地更新简单的true/false属性.但是现在我正在尝试更新一个自定义数据类型的属性,我遇到了困难.

数据类型本身只是一个简单的下拉列表,列出了一系列可用性状态,即.可用,不可用,已售出和保留.数据类型存储文本值.

这是我的代码,它允许我更新我的真/假属性:

public void ChangeInteractiveStatus(string nodeId, bool chkValue)
{
    var cs = ApplicationContext.Current.Services.ContentService;
    var apartment = cs.GetById(Convert.ToInt32(nodeId));
    apartment.SetValue("displayOnInteractive", chkValue);
    cs.SaveAndPublish(apartment);
}
Run Code Online (Sandbox Code Playgroud)

这非常正常,因为此属性的数据类型是常规的真/假数据类型.

这是我用来更改自定义下拉列表数据类型值的代码:

public void ChangeAvailabilityStatus(string nodeId, string status)
{
    var cs = ApplicationContext.Current.Services.ContentService;
    var apartment = cs.GetById(Convert.ToInt32(nodeId));            
    apartment.SetValue("status", status);
    cs.SaveAndPublish(apartment);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,差别很小,但这段代码无效.

为了检查在使用上面的代码更新属性时发生了什么,我检查了umbraco.config文件,发现有问题的属性显示如下:

<status><![CDATA[]]></status>
Run Code Online (Sandbox Code Playgroud)

但是,当我更改内容树中的值(不使用我的管理控件)时,该值将正确保存为:

<status><![CDATA[Sold]]></status>
Run Code Online (Sandbox Code Playgroud)

所以无论出于何种原因,当我尝试更新它被拒绝的价值时,我无法解决原因.

仅供参考我尝试输入以下值:

"<![CDATA[" + status + "]]>"
Run Code Online (Sandbox Code Playgroud)

然而这没有任何区别.

有谁知道我怎么解决这个问题?如何才能正确更新属性?

谢谢

c# umbraco

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

数据库交互/业务逻辑在MVC中发生在哪里?

我正在尝试了解MVC,我对于在哪里放置业务逻辑感到困惑.

我构建的所有Web应用程序都使用了N层架构,因此我习惯将业务逻辑和数据库交互放在他们自己的类/各自的"层"中,但是这在MVC中是如何工作的?

从我目前为止收集的,它似乎,这都应该存储在模型?但我很困惑,因为它似乎可以很容易地存储在控制器中?Controller负责返回相应的View ..所以在这里存储所有逻辑是否有意义?

如果有人能在这种情况下让我了解最佳实践,我将非常感激.

谢谢!

.net asp.net asp.net-mvc-3

4
推荐指数
1
解决办法
2529
查看次数

不在 Azure 上托管时生产服务器上的 .NET Core 机密

我一直在尝试了解 .NET Core 如何处理敏感信息,并且正在努力弄清楚如何在托管在 Azure 上的生产环境上进行部署。

据我了解,我可以在本地开发环境上使用“秘密存储”来存储敏感信息,但这仅适用于开发环境。

如果我想访问生产环境中的秘密变量,Azure Key Vault 似乎是推荐的方法?然而,根据我所读到的内容,除非我也在 Azure 上托管,否则我无法访问这些秘密。

在我的情况下,我们已经通过第三方托管公司设置了托管,所以我想知道当不在 Azure 上托管时是否可以以某种方式仍然使用 Azure 的 Key Vault。如果做不到这一点,还有哪些替代方案?

谢谢

c# .net-core asp.net-core

4
推荐指数
1
解决办法
2923
查看次数

如何编写此递归函数以查找对象的最大深度?

我正在尝试编写一个函数,它将遍历我的对象并返回对象的级别深度.

例如,如果我在此对象上运行该函数:

var test = {
  name: 'item 1',
  children: [{
    name: 'level 1 item',
    children: [{
      name: 'level 2 item'
    },
    {
      name: 'second level 2 item',
      children: [{
        name: 'level 3 item'
      }]
    }]
  }]
}

var depth = myFunction(test); // Would return 2 (0 index based) as the collection goes 3 levels deep
Run Code Online (Sandbox Code Playgroud)

我一直在尝试编写一个确定最大深度的递归函数,但到目前为止我无法做到正确.这是我到目前为止:https://jsfiddle.net/6cc6kdaw/2/

似乎返回的值是每个节点命中的计数,而不是唯一级别.我明白我哪里出错了(从某种意义上说我没有过滤掉它)但是我已经盯着代码这么久以至于没有任何意义了!

有谁能够指出我哪里出错了?谢谢

javascript recursion

2
推荐指数
4
解决办法
866
查看次数

如何使用linq获得此结果?

我目前有两个表:一个用户表和一个投票表.投票表存储包含用户ID的记录.

举个简单的例子,假设我的Users表包含以下字段:

UserId, Name, Age, Gender
Run Code Online (Sandbox Code Playgroud)

我的投票表有:

UserId, DateCreated
Run Code Online (Sandbox Code Playgroud)

我想要做的是选择投票率最高的前10位用户.

我怎样才能做到这一点?

谢谢

c# linq

0
推荐指数
1
解决办法
90
查看次数

用函数继承?

我知道继承类(显然),但我想知道是否可以在函数内复制行为?

我有一种情况,所有方法都需要在被调用之前实现一些逻辑,而不是在所有函数中复制代码,我想知道是否有某种方式来继承基函数或类似的函数在函数的其余部分之前执行流程?

这可能与C#有关吗?

例如,我有以下方法:

public void MyFunction1 {
  if(debug)
    return;

  MyProductionApi.DoSomething();
}

public void MyFunction2 {
  if(debug)
    return;

  MyProductionApi.DoSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)

正如您从上面看到的,我的场景基本上涉及检查我是否正在开发中,因此我可以避免昂贵的第三方API调用.如果我正在测试,我只是想跳过它们,但是想要避免为每个方法编写一个检查,因为有大量的函数.

理想情况下,我可以创建一些基本功能来执行我可以继承的检查,但我不知道这是否可行?

.net c#

0
推荐指数
1
解决办法
130
查看次数