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

在那里,例如,类的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)
具有动态添加和设置属性.
我想显示在外部库中执行的计算进度.
例如,如果我有一些计算方法,并且我想在我的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:\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中打开网站项目时出现错误.
好吧,我有一对多的相关模型:
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)
Parent在Child课堂上有额外的财产
public class Child
{ …Run Code Online (Sandbox Code Playgroud) 我目前正在开发注册页面.当用户已经存在时,我想在电子邮件字段的错误消息中为用户提供登录和重置密码链接.在控制器我有:
[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) 我有一个大的模型(大我的意思是模型类中含有大量的字段/属性和每个具有至少一个验证属性(如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) 我遇到了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) 我有几个功能文件和一些场景.我需要忽略几个场景或功能,@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类中哪些方法会忽略当前场景?
我有两个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.
c# ×6
asp.net-mvc ×2
ajax ×1
code-first ×1
comments ×1
css ×1
css-position ×1
dynamic ×1
iis-express ×1
jquery ×1
margin ×1
model ×1
overlay ×1
progress-bar ×1
razor ×1
specflow ×1
viewbag ×1
winforms ×1