标签: asp.net-mvc-3

ASP.NET MVC 3 Razor性能

重要更新:请参阅底部的更新5,asp.net mvc 3中没有性能问题,这是一个基准问题

我在asp.net mvc2,3 aspx和3 razor中做了一个简单的hello world项目并对它们进行了基准测试.我看到的是:

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700
Run Code Online (Sandbox Code Playgroud)

剃刀有什么问题,它太慢了?

更新: 我重做了测试.所有4个测试虚拟目录都使用相同的.net 4集成模式应用程序池.所有项目都是通过添加新的空x项目并添加1页,其中包含1行文本而没有代码完成的.所有站点都以发布模式编译.我的系统是Windows 7,4 gb i7 4核心.我已经运行了2次测试来预热iis,这些都是第二次运行结果.apache bench参数:ab -n100000 -c1000结果:

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%
Run Code Online (Sandbox Code Playgroud)

更新2 Scott Guthrie在他的博客中回答:

我们还没有完全优化MVC3(我们通常会进行大量的缓存调整).我们希望razor在最终发布之前与.aspx视图引擎具有相同的性能.

System         Requests per second …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc performance razor asp.net-mvc-3

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

asp.net mvc视图模型中的默认值

我有这个型号:

public class SearchModel
{
    [DefaultValue(true)]
    public bool IsMale { get; set; }
    [DefaultValue(true)]
    public bool IsFemale { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但根据我的研究和答案,DefaultValueAttribute实际上并没有设置默认值.但是这些答案来自2008年,是否有一个属性或更好的方法,而不是使用私有字段将这些值设置为true传递给视图?

无论如何,继承人的观点:

@using (Html.BeginForm("Search", "Users", FormMethod.Get))
{
<div>
    @Html.LabelFor(m => Model.IsMale)
    @Html.CheckBoxFor(m => Model.IsMale)
    <input type="submit" value="search"/>
</div>
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3

64
推荐指数
3
解决办法
11万
查看次数

moq对象返回方法,应该返回一个null对象

我正在开发一个Web API,我想出的一个测试是,如果客户端使用物理测试ID进行GET操作(物理测试是我正在寻找的资源)并且找不到物理测试,Web API应返回404状态.

现在,我正在使用moq框架进行测试,我有以下代码:

[TestMethod]
public void then_if_physical_test_not_found_return_not_found_status()
{
    var unitOfWork = new Mock<IUnitOfWork>();
    var repository = new Mock<IRepository<PhysicalTest>>();
    repository.Setup(r => r.FindById(It.IsAny<int>())).Returns();
    unitOfWork.Setup(m => m.PhysicalTests).Returns(repository.Object);
    var pt = new PhysicalTestResource(unitOfWork.Object);
    HttpResponseMessage<PhysicalTest> response = pt.GetPhysicalTest(43);
    Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode)
}
Run Code Online (Sandbox Code Playgroud)

我需要Returns()方法来返回一个null对象,如果找不到资源,它将是实际API方法返回的对象.

我尝试在Returns()方法中将null作为参数发送但没有成功.

c# moq mocking asp.net-mvc-3 wcf-web-api

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

html元素属性中的Razor语法(ASP MVC 3)

我有一个重复客户行的表,我想将客户ID添加到我的表行的ID属性,如下所示:

<tr id="row<customer id>"></tr>
Run Code Online (Sandbox Code Playgroud)

我尝试添加此代码:

@foreach(var c in Model) {
   <tr id="row@c.id"></tr>
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

<tr id="row@c.id"></tr>
<tr id="row@c.id"></tr>
Run Code Online (Sandbox Code Playgroud)

等等

但我希望它是:

<tr id="row1"></tr>
<tr id="row2"></tr>
Run Code Online (Sandbox Code Playgroud)

等等

我也尝试添加,<tr>row@{c.id}</tr>但它没有工作..

asp.net-mvc razor asp.net-mvc-3

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

ASP.NET MVC:Razor中的自定义Html助手

当与Razor一起使用时,我遇到了Html Helpers的困难.所述助手在MVC 2中与web表单视图引擎一起工作良好.但不是剃须刀.我在运行时得到的错误是:

Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

Source Error:


Line 1:  @using Wingspan.Web.Mvc;
Line 2:  @Html.IncrementalMenu(MenuBlock.Site)
Run Code Online (Sandbox Code Playgroud)

展开显示详细编译器输出显示:

d:\...\Views\Shared\MenuTop.cshtml(2,1): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
d:\...\Views\Shared\MenuTop.cshtml(2,7): error CS1503: Argument 1: cannot convert from 'void' to 'System.Web.WebPages.HelperResult'
Run Code Online (Sandbox Code Playgroud)

这向我表明剃刀不喜欢我的助手,IncrementalMenu,返回void(在MVC 2 Web表单引擎视图中工作正常).

我在编译时没有出现任何错误,尽管代码行(@ Html.IncrementalMenu(...))带有以下消息的红色下划线:

Cannot implicitly convert type 'void' to 'object'
Run Code Online (Sandbox Code Playgroud)

IncrementalMenu位于Wingspan.Web.Mvc命名空间中.它的签名如下:

public static void IncrementalMenu(this HtmlHelper html, MenuBlock menuBlock)
{
    // Uses an HtmlTextWriter to …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-3

63
推荐指数
3
解决办法
4万
查看次数

Custom ValidationSummary模板Asp.net MVC 3

我正在与Asp.Net MVC3合作开展一个项目

在我拥有的视图中@Html.ValidationSummary(true),通常它产生

<div class="validation-summary-errors">
    <ul>
        <li>Something bad Happened!</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

如何将此ValidationSummary扩展到MyValidationSummary并生成如下所示的Html代码模板:

<div class="notification warning"> 
    <span></span> 
    <div class="text"> <p>Something bad Happened!</p> </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

validationsummary asp.net-mvc-3

63
推荐指数
3
解决办法
5万
查看次数

从Linq限制列表中返回的结果数量

我正在使用Linq/EF4.1从数据库中提取一些结果,并希望将结果限制为(X)最近的结果.其中X是用户设置的数字.

有没有办法做到这一点?

我现在正在将它们作为一个传递给它,List如果这有助于限制结果集.虽然我可以通过循环来限制它,直到我点击X我只是假设没有传递额外的数据.

以防它是相关的...... C#MVC3项目从SQL Server数据库运行.

c# linq entity-framework asp.net-mvc-3

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

ASP.NET MVC 3和4之间的区别?

是否有一个全面的列表解释了MVC4的所有新功能以及MVC3的所有变化?

(发行说明没有太大帮助)

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

如何在ASP.NET MVC 3中创建自定义编辑器/显示模板?

我想为ASP.NET MVC(与之一起使用Html.EditorFor())中的不同数据类型制作自定义编辑器模板,包括重写现有模板.最终目标是创建一个迷你框架,其中每个编辑器都支持有关被更改的javascript通知,并且我可以向用户显示一条消息,即页面中有未保存的更改.(也许已经存在某些东西?)

我可以找到很多关于这些模板问题的问题,但是我找不到创建它们的教程或手册.他们去哪里?有什么特殊的语法吗?如何选择模板?模板中提供了哪些信息以及如何访问它?等等.

那么 - 在哪里可以找到有关这些模板的所有信息?

templates editortemplates asp.net-mvc-3

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

从其他控制器渲染局部视图

有没有办法在我的控制器A视图中呈现来自其他控制器B的局部视图?

编辑:我写了一个仅适用于两个控制器的局部视图,我不想将它复制到两个Views文件夹中.
我希望每次呈现视图时都显示部分视图,而不是在发生某些事情之后.

c# asp.net-mvc partial-views razor asp.net-mvc-3

62
推荐指数
3
解决办法
9万
查看次数