我只是创建一个新的MVC 4 Web API项目,并创建一个新的.cshtml文件,其中包含非常简单的HTML:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
</head>
<body>
<div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
打开URL时,将显示以下错误:
'/'应用程序中的服务器错误.
此类页面不会提供.
描述:未提供您请求的页面类型,因为它已被明确禁止.扩展名".cshtml"可能不正确.请查看下面的网址,确保拼写正确.
请求的URL:/index.cshtml
我在一位同事的开发机器上测试了这个场景(完全相同的项目).它按预期工作.所以我想配置或某些安装肯定有问题.但在哪里搜索?本地IIS和Visual Studio Development Server都不起作用.
UPDATE
直接访问.cshtml文件不适用于生产代码 - 仅用于培训目的!导航到/Home/Index完美的工作.所以没有别的,这显然是错的.只是直接访问.cshtml文件.
通常,如果在某种方法中抛出异常,则进行测试,如下所示.我使用FluentAssertions:
[Fact]
public void Exception_gets_thrown()
{
// Arrange
var foo = new Foo("validArgument");
// Act/Assert
foo.Invoking(f => f.Bar(null)) // null is an invalid argument
.ShouldThrow<ArgumentNullException>();
}
Run Code Online (Sandbox Code Playgroud)
但是如果在构造函数中抛出异常,如何测试呢?我只是这样做了,但是通过FluentAssertions可能有更合适的方法吗?
[Fact]
public void Constructor_throws_Exception()
{
// Arrange
Action a = () => new Foo(null); // null is an invalid argument
// Act/Assert
a.ShouldThrow<ArgumentNullException>();
}
Run Code Online (Sandbox Code Playgroud) 当然,以下内容不起作用.有没有可能的方法,这是非常相似的?
Type newObjectType = typeof(MyClass);
var newObject = givenObject as newObjectType;
Run Code Online (Sandbox Code Playgroud) 我目前正在观看有关ASP.NET Web API的视频课程.调用控制器时,默认情况下会以JSON格式返回数据.我只是想知道,因为当我从视频中复制这个示例项目时,我得到了XML.
沮丧很大,请帮我解决这个问题.
我是ASP.NET Web API的新手,所以请耐心等待.
UPDATE
控制器不包含特殊代码.这是简单的代码,它是从带有空读/写操作模板的API控制器生成的.
最近我遇到了一个问题(无法从程序集'...'加载类型'...')我的测试项目(Visual Studio 2010中的单元测试),所以我尝试(在这里寻找解决方案后)删除它和重写它.我通过右键单击解决方案资源管理器中的项目并选择"删除"来删除它.不过,我可以看到该项目仍然存在,如果我正在查看文件夹(整个解决方案),通过Windows ...
如何正确完整地删除测试项目?(我做了备份......)
我玩弄了ValueTuple结构并试图实现一个不可变的复合键.密钥由值类型组成.
我尝试用一些单元测试打破以下实现,到目前为止还没有成功.我错过了什么吗?
这也只是出于好奇,我想ValueTuple在.NET 4.7发布之前得到s和它的局限性.
到目前为止,我对a的理解ValueTuple是它只作为变量而不是作为字段或属性变化.不知道"可变"在这里意味着什么.更改ValueTuple实例实际上是否创建了一个新的ValueTuple(就像它的常识一样,字符串是"不可变的"但实际上是引用类型)?
从这个答案
System.ValueTuple不仅是一个struct,它是一个可变的,并且在使用它们时必须要小心.想想当一个班级System.ValueTuple作为一个领域时会发生什么.
在这里我的实施和测试
public interface IHaveCompositeKey
{
(Guid id, string name) Key { get; }
}
public class ImmutableKey : IHaveCompositeKey
{
public (Guid id, string name) Key { get; }
public ImmutableKey((Guid id, string name) key) => Key = key;
public override int GetHashCode() => Key.GetHashCode();
public override bool Equals(object obj)
{ …Run Code Online (Sandbox Code Playgroud) 这可能是一个非常简单的问题,但目前我实际上不知道该谷歌什么。
如果我有一个这样的对象:
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的 VM 中,我有一个员工列表 ( public List<Employee> Employees)。在我的 Xaml 中将它绑定到 ListBox 很容易:
<ListBox ItemsSource={Binding Employees}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
但是如果我的员工列表包含字符串而不是Employee对象呢?如何将这些字符串值绑定到TextBlock数据模板中?
假设我们有一个包含 30 列和 30 行的网格。
生命游戏规则简而言之:
但是如何初始化一个确定大小的网格呢?是否存在如何精确初始化某些单元格的规则?
以下问题.我只是想用C#画小东西.我想用Canvas做这件事.但即使没有画布,线条也显得模糊不清.在一个简单的演示项目中已经失败的最简单的事情是遵循以下代码:
<UserControl x:Class="Drawing.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Line Y1="1" Y2="300" StrokeThickness="1"
Stroke="Black" Margin="10 0 0 0"/>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
这条线显示模糊.我已经尝试了这么多,但我无法弄清楚如何实现清晰和一个像素宽的线条.
我试过以下事情:
UseLayoutRounding="True"如果找到解决方案,那将是很好的,它允许我捕捉由Canvas持有的线条.
原因是:出于技术原因,我们需要一个无边框的OOB应用程序,它实现了自定义边框(调整大小)以及一个自定义应用程序栏,其中包含最小化,最大化和关闭项目.我只是尝试通过线路等手绘这些图标:

可能有更简单的方法吗?我只是不想使用图像资源.谢谢!
任何帮助将大大赞赏.
我一直在尝试大部分的Enviroment.SpecialFolder枚举,但我认为只有枚举才能实现我想要完成的任何方式.使用这种string.Substring()方法给我带来了最重要的.
我试着只获得系统分区路径,其中实际安装了Windows.在机器A上它可能是C:\,在机器B上它可能是D:\.
到目前为止,我找到了最充分的解决方案
var path = Environment.GetFolderPath(Environment.SpecialFolder.Windows)
.Substring(0, 3);
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?谢谢.
c# ×9
.net ×4
asp.net-mvc ×1
binding ×1
immutability ×1
listbox ×1
mutability ×1
silverlight ×1
solution ×1
types ×1
unit-testing ×1
valuetuple ×1
xaml ×1
xunit.net ×1