小编Dmy*_*tro的帖子

在Visual Studio 2012中注释和取消注释代码的关键快捷方式是什么?

旧版本中有Ctrl+ E+ C(注释)和Ctrl+ E+ U(取消注释),或Ctrl+ K+ CCtrl+ K+ U.但是在VS 2012中我看不到关键的快捷方式(看截图)......也许我应该在任何地方启用这些快捷方式??? 在此输入图像描述

comments visual-studio visual-studio-2012

127
推荐指数
4
解决办法
19万
查看次数

如何在C#中创建自己的动态类型或动态对象?

在那里,例如,类的ViewBag属性,ControllerBase我们可以动态获取/设置值并向该对象添加任意数量的附加字段或属性,这很酷.我想使用类似的东西,超出MVC应用程序和Controller其他类应用类型.当我尝试创建动态对象并设置它的属性如下所示:

1. dynamic MyDynamic = new { A="a" };
2. MyDynamic.A = "asd";
3. Console.WriteLine(MyDynamic.A);
Run Code Online (Sandbox Code Playgroud)

我有RuntimeBinderException消息属性或索引器'<> f__AnonymousType0.A'无法分配 - 它只在第2行读取.另外我建议它不是我正在寻找的.也许有些课程可以让我做一些像:

??? MyDynamic = new ???();
MyDynamic.A = "A";
MyDynamic.B = "B";
MyDynamic.C = DateTime.Now;
MyDynamic.TheAnswerToLifeTheUniverseAndEverything = 42;
Run Code Online (Sandbox Code Playgroud)

具有动态添加和设置属性.

c# dynamic viewbag

122
推荐指数
7
解决办法
17万
查看次数

如何使用WinForms进度条?

我想显示在外部库中执行的计算进度.

例如,如果我有一些计算方法,并且我想在我的Form类中使用它为100000个值,我可以写:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }            

    private void Caluculate(int i)
    {
        double pow = Math.Pow(i, i);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        progressBar1.Maximum = 100000;
        progressBar1.Step = 1;

        for(int j = 0; j < 100000; j++)
        {
            Caluculate(j);
            progressBar1.PerformStep();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该在每次计算后执行步骤.但是,如果我在外部方法中执行所有100000计算,该怎么办?如果我不想让这个方法依赖于进度条,我什么时候应该"执行步骤"?例如,我可以写

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void CaluculateAll(System.Windows.Forms.ProgressBar progressBar)
    {
        progressBar.Maximum = 100000;
        progressBar.Step = 1;

        for(int j = 0; …
Run Code Online (Sandbox Code Playgroud)

c# winforms progress-bar

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

创建虚拟目录失败并显示错误

我无法解决这个问题

在此输入图像描述

我建议我必须更改c:\Windows\System32\drivers\etc\hosts文件并添加

# localhost name resolution is handled within DNS itself.
Run Code Online (Sandbox Code Playgroud)

下一行:

127.0.0.1       mysite.dev
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.有什么建议?

当我尝试在Microsoft Visual Studio 2012中打开网站项目时出现错误.

visual-studio iis-express

77
推荐指数
6
解决办法
6万
查看次数

如何在EF代码第一个数据库中删除子一对多的相关记录?

好吧,我有一对多的相关模型:

public class Parent
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Child> Children { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public string ChildName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是清除Parent.Children并从数据库中删除相关的子实体.我已经尝试过了:

数据库上下文类:

modelBuilder.Entity<Parent>()
            .HasMany(p => p.Children)
            .WithOptional()
            .WillCascadeOnDelete(true);
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但我还是在数据库冗余记录与Parent_Id = null领域,当我做

parent.Children.Clear();
repository.InsertOrUpdate(parent);
Run Code Online (Sandbox Code Playgroud)

在我的存储库类中.当我这样做时,同样的行为:

modelBuilder.Entity<Parent>()
            .HasMany(pr => pr.Children)
            .WithOptional(ri => ri.Parent)
            .WillCascadeOnDelete(true);
Run Code Online (Sandbox Code Playgroud)

ParentChild课堂上有额外的财产

public class Child
{ …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework code-first

61
推荐指数
3
解决办法
7万
查看次数

如何在ASP.NET MVC中的验证消息中呈现html?

我目前正在开发注册页面.当用户已经存在时,我想在电子邮件字段的错误消息中为用户提供登录和重置密码链接.在控制器我有:

[HttpPost]
public ActionResult Register(RegistrationModel registration)
{
  ...

  if(userExists)
  {
      const string errorMessage = "User already exist. You can <a href="/account/login">login</a> ...";
      ModelState.AddModelError("Email", errorMessage);
      return View("Register", registration);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在视图中输出此消息时,我没有得到我期望的结果.我得到像纯文本一样的HTML标记.我已经尝试过了:

@using(Html.BeginForm())
{
<div>@Html.TextBoxFor(m => m.Email)            
@{
   @Html.ValidationMessageFor(m => m.Email)

   ...

   @Html.Raw(Html.ValidationMessageFor(m => m.Email))

   ...

   string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString();
   @Html.Raw(validationMessage)

   ...

   string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString();
   @Html.Raw(validationMessage)

   ...

   string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString();
   @(new HtmlString(validationMessage))

   ...

   string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString();
   @(new HtmlString(validationMessage))

   ... …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

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

如何在ASP .NET MVC中仅验证部分模型?

我有一个大的模型(大我的意思是模型类中含有大量的字段/属性和每个具有至少一个验证属性(如Required,MaxLength,MinLength等等)).我没有创建一个带有大量输入的视图供用户使用数据填充模型,而是创建了几个视图,用户将填充部分模型字段并转到下一步(某种"向导").在步骤之间重定向时,我存储未填充的模型对象Session.如下所示:

模型:

public class ModelClass
{
    [MaxLength(100)] ...
    public string Prop1{get;set;}
    [MaxLength(100)] ...
    public string Prop2{get;set;}
    ...
    [Required][MaxLength(100)] ...
    public string Prop20{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

控制器:

[HttpPost]
public ActionResult Step1(ModelClass postedModel)
{    
    // user posts only for example Prop1 and Prop2
    // so while submit I have completly emty model object
    // but with filled Prop1 and Prop2
    // I pass those two values to Session["model"]
    var originalModel = Session["model"] as ModelClass …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller asp.net-mvc model

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

当IE调试器打开时,jQuery ajax只能在IE中运行

我遇到了IE(11)的奇怪问题.我有简单的jQuery代码:

$("#my-radio").click(function () {
     $.ajax({
        url: "/my-url",
    }).error(function(jqXHR, textStatus, errorThrown) {
        $("#error-summary").text(errorThrown);
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是这个代码在IE以外的所有浏览器中都能完美运行(在我的情况下除了IE 11,还没有在早期版本中测试)但是,当我打开IE内置的javascript调试器看看有什么问题 - 一切都开始工作了罚款.IE对控制器动作进行ajax调用,控制器中的断点被命中.动作不返回任何东西(它的类型void),只计算一些东西.我已经尝试过在这个帖子中提供的插件解决方案,但它没用.

更新:

为了演示这个问题,我在这里发布了简单的MVC应用程序.当您单击图像时,浏览器会对此操作发出ajax请求:

public string Hello()
{
     string ip = Request.ServerVariables["REMOTE_ADDR"];
     string agent = Request.UserAgent;    

     var request = new Request
     {
          IP = ip,
          Time = DateTime.UtcNow,
          UserAgent = agent
     };

     _requestsRepository.Add(request);

     int byIp = _requestsRepository.GetTotalRequestsCountByUser(ip);
     int total = _requestsRepository.TotalRequests;

     string message = string.Format("Hello, {0}. This is your {1}th request and {2}th request in total.", …
Run Code Online (Sandbox Code Playgroud)

ajax jquery internet-explorer

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

如何使用TechTalk.SpecFlow和C#以编程方式忽略一些验收测试?

我有几个功能文件和一些场景.我需要忽略几个场景或功能,@tag根据某些条件标记一些.我已阅读specflow文档,但没有找到对我的解决方案有用的东西.我想用类似的东西

[BeforeScenario("sometag")]
public static void BeforeScenario()
{
    if(IgnoreTests)
    {
       // This is the hot spot
       Scenario.DoSomethingToIgnoreScenarioIfConditionButRunScenarioIfConditionFalse();
    }        
}
Run Code Online (Sandbox Code Playgroud)

我还尝试动态添加或删除标签

[BeforeScenario("sometag")]
public static void BeforeScenario()
{
    if(IgnoreTests)
    {
       ScenarioContext.Current.ScenarioInfo.Tags.ToList().Add("ignore");
    }        
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.也许是否有其他方法可以动态添加或删除标签?或者ScenarioContext类中哪些方法会忽略当前场景?

c# acceptance-testing specflow

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

如何在不使用position:absolute的情况下将一个div叠加到另一个div上?

我有两个div有两个图像:

<div id="div1">    

     <div id="div2">
         <img src="img1" />
    </div> 

    <img src="img2" /> 

</div>
Run Code Online (Sandbox Code Playgroud)

第二个是比第一个小的一个.如何在不使用的情况下将第二张图像放在第一张图像上

#div2{
    position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

我需要获得类似的结果但不使用position绝对属性;

主要问题是在父div中有很多其他元素,而不仅仅是div2.

css overlay margin css-position

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