小编Ste*_*fen的帖子

如何实例化内部私有类的PrivateType

我试图为私人内部课程设置单元测试,但收效甚微:

namespace Stats.Model
{
  public class DailyStat
  {
    private class DailyStatKey // The one to test
    {
      private DateTime date;
      public DateTime Date 
      { 
        get { return date; }
        set { date = value.Date; }
      }

      public StatType Type { get; set; }

      public override int GetHashCode()
      {
        return Date.Year * 1000000 +
               Date.Month * 10000 +
               Date.Day * 100 +
               (int)Type;
      }

      public override bool Equals(object obj)
      {
        DailyStatKey otherKey = obj as DailyStatKey;
        if (otherKey == null)
          return …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing private-members

9
推荐指数
2
解决办法
4923
查看次数

ASP.Net MVC应该为每个视图创建一个模型吗?

我是ASP.Net MVC的新手,我发现自己为每个视图制作了一个模型类.例如SignInModel,SignUpModel,EditProfileModel等等.

其中许多都有些相似,具有相同的DB fiels,然后是一些自定义属性.

这真的是MVC应该如何完成,还是我错过了它的某些方面?

我意识到这可能是主观的,但应该有一个"最佳实践".

asp.net-mvc

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

ASP.Net MVC 3 Unobtrusive验证不适用于部分视图

我已经设置了一个局部视图,其中包含自己的表单标记,如下所示:

<tr>
    @using (Html.BeginForm("Create"))
 {
        <td>
            @Html.TextBoxFor(model => model.Date)
            @Html.ValidationMessageFor(model => model.Date)
        </td>
        <td>
            @Html.TextBoxFor(model => model.Amount)
            @Html.ValidationMessageFor(model => model.Amount)
        </td>
        <td>
            @Html.TextBoxFor(model => model.Tags)
            @Html.ValidationMessageFor(model => model.Tags)
        </td>
        <td>
            @Html.EnumDropDownListFor(model => model.Type)
        </td>
        <td>
            <input type="submit" value="Add" />
            @Html.ValidationSummary(true)
        </td>
 }
</tr>
Run Code Online (Sandbox Code Playgroud)

我使用@ Html.Action("Create")在页面上渲染它(它是表格的一部分,因此是<tr>标签.

由于一些奇怪的原因,我的客户端验证不起作用,我首先看到发布时的错误.

部分视图和客户端验证有什么特别之处吗?

我已经包含以下脚本:

<script src="/Scripts/jquery.1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

编辑

我只是试着把这个脚本扔到页面上:

jQuery('form').submit(function ()
{
    alert(jQuery(this).valid());
});
Run Code Online (Sandbox Code Playgroud)

它警告'true',因此客户端验证脚本肯定存在,并且由于某种原因它不检查有问题的字段: - /

编辑2

我已将页面的整个源代码(HTML + JS)上传到pastebin:http://pastebin.com/GvqLW495

partial-views unobtrusive-validation asp.net-mvc-3

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

MS VC++如何构建DLL而不需要vc redist

我正在尝试围绕一些基本的C++代码构建一个简单的.Net包装器.

C++代码不依赖于vcredist dll中的任何东西,所以我想知道我是否可以设置我的项目,所以它不需要那些dll工作?

我不想让我的用户下载并运行vcredist,只是为了一个简单的DLL工作.

visual-studio visual-c++

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

如何通过C#发送邮件时实现发件人ID?

我刚刚听到Joel和Jeff在他们的播客编号83中谈论发件人ID,而我发现这正是我正在努力的网站所需要的.

从服务器发送的所有电子邮件中大约90%被退回或类似,可能是因为服务器没有"验证".

我有一个服务器的SPF记录,但也是如此.

因此,由于StackOverflow已经解决了这些问题,我猜发件人ID必须成为可行的方法.

据我所知,维基百科需要您在发送邮件时修改邮件标题 - 我将如何从C#中执行此操作?

另外,我需要设置DNS智能等等才能使其工作?

或者我在这里走错了轨道?

编辑:我在C#中使用标准的SmtpClient类来发送邮件,我确实包括明文和邮件的HTML版本.

c# email bounce

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

如何在"母版页"级别实现逻辑

我还是MVC的新手,所以忍受我:-)

我有一个我正在研究的社区网站,我想在用户登录后显示我的所有页面上有多少用户在线.

我有一个共享视图,用于登录后所有页面的布局(UserLayout.cshtml)

我可以以某种方式添加逻辑,以显示我的共享布局在线计数?

如果它是WebForms我只是为我的母版页有一些代码隐藏,但这显然不是一个选项.

有关用户在线的信息是从缓存中获取的.它不能作为我的任何View Models的属性.

c# razor layout-page asp.net-mvc-3

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

Thread.Interrupt在应用程序关闭时停止长时间睡眠 - 是否有更好的方法

我有一个小的后台线程,它运行应用程序的生命周期 - 但是当应用程序关闭时,线程应该优雅地退出.

问题是该线程以15分钟的间隔运行一些代码 - 这意味着它会睡眠很多.

现在为了让它从睡眠状态中解脱出来,我会向它抛出一个中断 - 但我的问题是,如果有一个更好的方法,因为中断会产生ThreadInterruptedException.

这是我的代码的要点(有点伪):

public class BackgroundUpdater : IDisposable
{
    private Thread myThread;
    private const int intervalTime = 900000; // 15 minutes
    public void Dispose()
    {
        myThread.Interrupt();
    }

    public void Start()
    {
        myThread = new Thread(ThreadedWork);
        myThread.IsBackground = true; // To ensure against app waiting for thread to exit
        myThread.Priority = ThreadPriority.BelowNormal;
        myThread.Start();
    }

    private void ThreadedWork()
    {
        try
        {
            while (true)
            {
                Thread.Sleep(900000); // 15 minutes
                DoWork();
            }
        }
        catch (ThreadInterruptedException)
        {
        } …
Run Code Online (Sandbox Code Playgroud)

c# multithreading interrupt

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

睡眠线程时到底发生了什么

我想知道操作系统中的任务调度程序如何处理休眠线程.

我的意思是,调度程序是否仍然检查休眠线程,或者在确定哪个线程在接下来的10毫秒内处于活动状态或者给定的时间长时完全跳过.

我之所以这样问,是要弄清楚一个睡眠线程是否会消耗CPU周期(尽管很少).

那么有谁知道会发生什么?

你知道从Windows到Linux有什么不同吗?

linux windows operating-system

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

ASP.Net MVC 3:在哪里处理会话丢失?

当我的会话丢失或重建我的项目时,我已经开始遇到错误,因为我的表单身份验证cookie仍然存在.

在WebForms中,我使用与需要登录的页面相关联的母版页来检查会话.

我如何在MVC中的一个位置执行此操作?我讨厌在我的控制器中的每个动作中检查会话状态.

另一方面,我也不能只应用全局过滤器,因为并非所有控制器都需要会话状态.

它可能在我的布局视图中可能吗?这是需要会话的页面唯一的共同点.

session-timeout asp.net-mvc-3

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

检查ASP.Net验证器客户端的结果

我知道内置的ASP.Net验证器带有客户端框架,但是我一直无法找到任何可以让我检查单个验证器的有效状态.

我希望它有可能,所以我希望有人在这里知道怎么做:-)

有问题的验证器是RegularExpressionValidator,我用它来确定电子邮件地址是否有效.

这是一些简短的代码:

<script>
function CheckForExistingEmail()
{
  Page_ClientValidate(); // Ensure client validation
  if (revEmail.IsValid) // pseudo code!
  {
    // Perform server side lookup in DB for whether the e-mail exists.
  }
}
</script>

<asp:TextBox runat="server" id="tbEmail" onblur="CheckForExistingEmail();" />
<asp:RegularExpressionValidator id="revEmail" runat="server" ControlToValidate="tbEmail" ErrorMessage="Not a valid e-mail address" ValidationExpression="([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})" />
Run Code Online (Sandbox Code Playgroud)

javascript asp.net validation

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