小编dev*_*ate的帖子

如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

我在控制器中有代码消耗 HttpContext

public ActionResult Index()
{

   var currentUser=HttpContext.User.Identity.Name;
   ......

}
Run Code Online (Sandbox Code Playgroud)

尝试使用像这样的NUnit编写测试时

[Test]
public void CanDisplayRequest()
{
    //Act
    var result=  (ViewResult)_requestController.Index();

    //Assert
    Assert.IsInstanceOf<OrderRequest>(resut.Model);
}
Run Code Online (Sandbox Code Playgroud)

测试将失败,因为它无法找到 HttpContext

那么我怎么能嘲笑 HttpContext.Current.User.Identity.Name

我正在使用Moq进行模拟

c# asp.net-mvc unit-testing

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

Visual Studio 2008 SP1和TFS 2015的MSSCCI提供程序

我安装了Team Foundation Server 2015,并且我正在尝试将Visual Studio 2008(版本9.0.30729.4462 QFE)连接到团队项目.我安装了VS 2008 Team Explorer(版本9.0.21022.8).

据MS称,这应该可以使用MSSCCI Provider.但是,我找不到与TFS 2015兼容的版本.

问题:2015年TFS的MSSCCI提供商在哪里,还是有另一种方式将VS 2008连接到TFS 2015?

我已经尝试过针对TFS 2013的MSSCCI Provider,它失败了,因为它没有检测到TFS 2013(自2015年安装以来这是有道理的).

tfs visual-studio-2008 visual-studio

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

ASP.NET vNext Core CLR缺少type.IsPrimitive

我正在尝试将Web应用程序迁移到ASP.Net vNext,最终目的是让它在Linux上运行.

该应用程序有很多反射代码,我必须缺少一些依赖项,因为我在代码上遇到编译错误

Type.IsPrimitive,Type.GetConstructor Type.GetMethod Type.GetTypeArray错误CS1061'Type'不包含'IsPrimitive'的定义,并且没有扩展方法'IsPrimitive'接受类型'Type'的第一个参数可以找到(你是否遗漏了) using指令或程序集引用?)

错误CS1061'Type'不包含'GetMethod'的定义,也没有扩展方法'GetMethod'接受类型'Type'的第一个参数(你是否缺少using指令或汇编引用?)

错误CS1061'Type'不包含'GetProperties'的定义,也没有扩展方法'GetProperties'接受类型'Type'的第一个参数(你是否缺少using指令或汇编引用?)

错误CS1061'Type'不包含'GetInterface'的定义,并且没有扩展方法'GetInterface'接受类型'Type'的第一个参数可以找到(你是否缺少using指令或汇编引用?)

我的project.json文件中有以下依赖项

"frameworks" : {
    "aspnetcore50" : { 
        "dependencies": {
            "System.Runtime": "4.0.20-beta-22416",
            "System.Linq": "4.0.0.0-beta-22605",
            "System.Reflection": "4.0.10.0-beta-22605",
            "System.Reflection.Primitives": "4.0.0.0-beta-22605",
            "System.Runtime.Extensions": "4.0.10.0-beta-22605",
            "System.Reflection.Extensions": "4.0.0.0-beta-22605"
        }
Run Code Online (Sandbox Code Playgroud)

以下编译在VS 2013和.Net 4.5下很好,但不会使用上面的依赖项在VS 2015中编译

using System;
using System.Reflection;


namespace Project1
{
    public class Class1
    {
        public Class1()
        {
            Type lBaseArrayType = typeof(Array);
            Type lStringType = typeof(string);
            string[] lStringArray = new string[1];
            if (lStringType.IsPrimitive)
            {
            }
            ConstructorInfo lConstructor = lStringType.GetConstructor(new Type[0]);
            MethodInfo lMethod = lStringType.GetMethod("Equals");
            Type[] lTArray = Type.GetTypeArray(lStringArray); …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-core

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

不能让"clipboard.js"工作

我无法让clipboard.js工作; 我认为这是一个简单的"误解",关于整个事情是如何运作的,因为我甚至无法得到最简单的例子,就像在这个小提琴中一样 ......

我的具体问题是让这个工作:

HTML:

<button class="copyButton" 
        id="copyButtonId" 
        data-id="@item.Type" 
        data-clipboard-action="copy" 
        data-clipboard-target="#copy_@item.Type">
</button>  
Run Code Online (Sandbox Code Playgroud)

应该复制的div是这样的:

   <div id="copy_@item.Type">
       @item.Type
       Name...: @item.Name
       Address: @item.Address
   </div>`
Run Code Online (Sandbox Code Playgroud)

JS是:

$(function() {
$(document).on("click", ".copyButton", function() {
    var clipboard = new Clipboard(".copyButton"); 
    clipboard.destroy();
  });
});
Run Code Online (Sandbox Code Playgroud)

我正在进入这个功能,但什么也没发生.我试过了:

clipboard.copy();
Run Code Online (Sandbox Code Playgroud)

但这只是让我异常......

我可以得到我要复制的文字

var id= "copy_" + $(this).attr("data-id"); var source = ($("#" + agent).html());

但我应该只能通过使用来解决这个问题clipboard.js.

我无法得到任何例子,所以如果有人给我一个完整的例子,我会很高兴.我真的试图理解,我可能会过度思考整个事情并使其变得更加复杂.我不想要任何变通方法,因为我之前使用过,认为这是一个很棒的js解决方案...如果我能理解它:)

每一个正确方向的提示都值得赞赏!

javascript clipboard clipboard.js

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

如何向firebase.auth()添加其他信息

如何在此数据集中添加额外属性电话号码和地址?似乎Firebase文档没有指定任何相关内容.

我已经实现了登录,注册和更新 firebase.auth()

登录 :

//Email Login
firebase.auth().signInWithEmailAndPassword(email, password).then(
   ok => {
        console.log("Logged in User",ok.user);              
    },
    error => {
        console.log("email/pass sign in error", error);
    }
);
Run Code Online (Sandbox Code Playgroud)

寄存器:

 //Sign Up
firebase.auth().createUserWithEmailAndPassword(email, password).then(
    ok => {
        console.log("Register OK", ok);
    },
    error => {
        console.log("Register error", error);
    }
)
Run Code Online (Sandbox Code Playgroud)

更新:

//User Authentication
firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    $scope.data=user;
  } else {
    // No user, Redirect to login page
  }
});

//Save Function
$scope.save=function(values){

    $scope.data.updateProfile({

      displayName: "Test User",
      email: "test@gmail.com",
     /* phone: 123412341,
      address: …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication firebase-realtime-database

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

适用于Universal App的MySQL Connection的哪个程序集

我想使用MySQL Connector建立与数据库的连接.我得到了与程序集的连接,MySql.Data.RT.dll但这是为Win RT.这对于Win 10 Universal应用程序来说也是正确的,或者使用.NET 4.5 Framework之一是否更好:

在此输入图像描述

我的问题是:

为Windows Universal App选择哪个程序集?

c# mysql mysql-connector win-universal-app

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

数以百计的自定义UserControls创建了数千个USER对象

我正在创建一个仪表板应用程序,显示数百个"项目" FlowLayoutPanel.

每个"项目"是UserControl由12个文本框或标签组成的.

我的应用程序查询数据库,然后为每个记录创建一个"项目"实例,在将数据添加到数据库之前用数据填充标签和文本框FlowLayoutPanel.

在向面板添加约560个项目之后,我注意到USER Objects我的任务管理器中的计数已经上升到大约7300,这比我机器上的任何其他应用程序大得多.

我认为560*13(12个标签加上UserControl本身)是7280.所以突然放弃了所有物品来自哪里......

知道在Windows抛出之前有10,000个USER对象限制,我正试图找到更好的方法将这些"项目"绘制到FlowLayoutPanel.

到目前为止,我的想法如下:

  1. 用户绘制"项目",使用graphics.DrawTextDrawImage代替许多标签.我希望这意味着1项= 1 USER Object,而不是13.

  2. 有1个"item"实例,然后为每个记录填充实例并使用该Control.DrawToBitmap()方法获取图像,然后在FlowLayoutPanel(或类似)中使用它

所以...有没有人有任何其他建议???

PS这是一个可缩放的界面,所以我已经排除了"分页",因为需要一次查看所有项目

.net c# user-controls resource-leak winforms

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

Scipy安装问题,得到ImportError:libopenblas.so.0:无法打开共享对象文件或目录

我安装Scipy-0.16.1Ubuntu 14.04

OpenBLAS_0.2.18Numpy-1.11.0已安装没有问题.

Scipy-0.16.1.tar.gz 已下载

site.cfg 复制并取消注释以下行:

[openblas]

libraries = openblas

library_dirs = /opt/OpenBLAS/lib

include_dirs = /opt/OpenBLAS/include
Run Code Online (Sandbox Code Playgroud)

添加了一行 ~/.bashrc

export LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

source~/.bashrc

LDCONFIG

sudo python setup.py配置

错误

ImportError:libopenblas.so.0:无法打开共享对象文件:没有这样的文件或目录

python numpy scipy openblas

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

像以前的beta聚合模块一样打包并运行Angular2 RC.0

自从我升级到Angular2 RC.0以来,所有模块现在都被单独加载(应用程序加载时有600个HTTP请求),这个模块非常长并且几乎无法使用.beta17一次加载所有模块(或者每个核心至少有一个文件,http,rxjs ......).

我已经关注了beta和RC的官方快速入门指南.

你能告诉我如何使用与beta相同的机制或新的机制是什么使用RC.0的聚合模块?

javascript angular

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

使用Request.Form确定在CheckBoxList中选择了哪些项目

使用此处问题中显示的方法,我可以从我的获取所选项目值CheckBoxList:

var selectedCheckBoxItems = from key in Request.Form.AllKeys
                        where key.Contains(cbl.ID)
                        select Request.Form.Get(key);
Run Code Online (Sandbox Code Playgroud)

然后我可以迭代结果:

foreach (var item in selectedCheckBoxItems)
{

}
Run Code Online (Sandbox Code Playgroud)

问题是item只是发布的值,对于复选框,它只是字符串"on".

上

我需要能够通过索引或其他方法确定哪个项目"打开".

问: 我如何确定适合该项目CheckBoxList的选择,使用Request.Form

这是我的CheckBoxList定义:

<asp:CheckBoxList runat="server" ID="cblAnimalType" SelectionMode="Multiple" DataTextField="OptionText" DataValueField="OptionId"  AutoPostBack="True"/>
Run Code Online (Sandbox Code Playgroud)

项目从后面的代码添加到列表中:

DataTable dt = GetData(SqlGetListOptions, paramList);
cbl.DataSource = dt;
cbl.DataBind();
Run Code Online (Sandbox Code Playgroud)

另一个要知道的重要事情是ViewStateMode="Disabled",所以我必须Request.Form用来获取所选项目.


在回复评论时,以下是CheckBoxList的HTML呈现方式:

HTML


@Leopard指出他看到HTML中呈现的值在我的情况下没有发生.AdamE对这个问题的回答解释了原因.我在web.config中有以下行:

<pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
Run Code Online (Sandbox Code Playgroud)

这解释了为什么我看到"开"而不是所选项的实际值.我无法在没有验证它会破坏其他内容的情况下从web.config中提取兼容性,但似乎如果可以安全删除该设置,则可以从代码隐藏中访问复选框列表值.

c# asp.net checkboxlist

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