小编JP.*_*JP.的帖子

剃刀视图引擎 - 如何添加部分视图

我想知道,如果可能的话,使用新的剃刀视图引擎渲染局部的最佳方法.我知道这是当时没有完全完成的事情

现在我使用RenderPage来呈现用户控件:

@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
Run Code Online (Sandbox Code Playgroud)

调用RenderPage的页面使用布局(主)页面,其中定义了三个部分:TitleContent,HeadContent和Maincontent.当我尝试从此页面渲染我的语言环境控件时,似乎还需要这些部分 - 它们应该只在调用页面中需要并且存在.我收到以下消息,无论我是否在部分视图中包含这些部分(显然我不想包含这些部分,但它似乎是一个有趣的调试点......).

以下部分已定义,但尚未在布局页面'〜/ Views/Shared/LocaleUserControl.cshtml'上呈现:TitleContent; HeadContent; 搜索Maincontent

我的部分观点如下(改编自以下链接):

@inherits System.Web.Mvc.WebViewPage<LocaleBaseModel>
@using System.Web.UI;

<p>
     @Html.LabelFor(model => Model.CountryName)
    <br />
    @Html.DropDownListFor(model => Model.CountryName,null, string.Empty, new { @class = "text", accesskey="u"})
</p>
<p>
     @Html.LabelFor(model => Model.StateProvince)
    <br />
     @Html.DropDownListFor(model => Model.StateProvince, null, string.Empty, new { @class = "text", accesskey="t" })
</p>


<script type="text/javascript">
    $(function () {
        var countries = $("#CountryName");
        var statesprovinces = $("#StateProvince");
        countries.change(function () {
            statesprovinces.find('option').remove();
            var url = '@Url.Action("GetStatesProvinces", "Base")';
            $.getJSON(url, { countryId: countries.val() }, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

84
推荐指数
1
解决办法
10万
查看次数

asp.net mvc - 包含元关键字和描述等SEO信息的策略

我想知道在ASP.NET MVC(我正在使用v3 RC)视图中包含SEO内容(如元描述和关键字)的最佳实践,如果有的话.我最初的计划是创建一个动作过滤器,全局应用于动作,从数据存储中提取相关数据并将其作为viewdata传递给视图.

我的问题是:1)您是否预见到这种方法有任何问题?2)还有更合适的方法吗?3)在这里使用什么是合适的数据存储 - 我应该从数据库中提取(或者如果数据可用则缓存),使用资源文件,配置文件等?

提前致谢,

J.P

c# asp.net-mvc razor

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

使用Moq模拟NHibernate ISession

我正在使用NHibernate,ASP.NET MVC 2.0和StructureMap开始一个新项目,并使用NUnit和Moq进行测试.对于我的每个控制器,我都有一个公共构造函数,其中注入了一个ISession.应用程序本身工作正常,但就单元测试而言,我基本上必须模拟一个ISession才能测试控制器.

当我尝试使用MOQ模拟ISession时,我收到以下错误消息:

中间调用仅支持属性访问

看来我的问题是期待来自框架CreateQuery方法的用户列表,但在谷歌搜索问题之后我现在更清楚了.

我有两个问题:

1)这是模拟依赖注入ISession的错误方法吗?

2)有没有办法修改代码,以便它可以成功返回我的列表

            [Test]
            public void DummyTest()
            {

                var mock = new Mock<ISession>();
                var loc = new Mock<User>();
                loc.SetupGet(x => x.ID).Returns(2);
                loc.SetupGet(x => x.FirstName).Returns("John");
                loc.SetupGet(x => x.LastName).Returns("Peterson");

                var lst = new List<User> {loc.Object};
                mock.Setup(framework => framework.CreateQuery("from User").List<User>()).Returns(lst);

                var controller = new UsersController(mock.Object);
                var result = controller.Index() as ViewResult;
               Assert.IsNotNull(result.ViewData);
            }
Run Code Online (Sandbox Code Playgroud)

请注意,我很确定我可以创建一个硬编码的用户列表(而不是模拟单个用户并将其添加到列表中),但我想我现在已经保留了代码.

此外,此特定控制器的Index操作基本上执行上面模仿的CreateQuery调用以返回数据库中的所有用户.这是一个人为的例子 - 不要读任何细节.

在此先感谢您的帮助

编辑:在回复以下评论时,我正在添加错误的堆栈跟踪.此外,User类上的所有属性都是虚拟的.

TestCase'Beta.Tests.Unit.Controllers.UserControllerTest.Details_InValidIndex_ReturnsNotFoundView'失败:System.NotSupportedException:在设置的中间调用中仅支持属性访问.不支持的表达式framework.CreateQuery("来自用户").位于Moq.Mock.AutoMockPropertiesVisitor的Moq.ExpressionVisitor.Visit(表达式exp)Moq.Mock.AutoMockPropertiesVisitor.VisitMethodCall(MethodCallExpression m)的Moq.Exkression.Vatitor上的Moq.Mock.AutoMockPropertiesVisitor.VisitMethodCall(MethodCallExpression m)中的Moq.Mock.AutoMockPropertiesVisitor.VisitMethodCall(MethodCallExpression m) Moq.Mock上的Moq.Mock.GetInterceptor(LambdaExpression lambda,Mock mock)的.SetupMocks(表达式表达式).<> c__DisplayClass12 2.<Setup>b__11() at Moq.PexProtector.Invoke[T](Func1函数)在Moq.Mock.Setup [T1,TResult](模拟模拟,表达式1 expression) at Moq.Mock1.Setup …

.net c# nhibernate unit-testing moq

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

Microsoft AntiXSS Alternative

微软的AntiXSS库已经被打破了6个月,看起来已经放弃了(可能是也可能不是正式).由于先前版本存在安全问题,因此回滚到早期版本是不安全的.在使用Microsoft(特别是MVC)堆栈时,是否有任何针对AntiXSS和Web安全的积极开发的替代方案?

security antixsslibrary asp.net-mvc-3

22
推荐指数
1
解决办法
3597
查看次数

是否可以使用Automapper将多个DTO对象映射到单个ViewModel?

我想知道是否可以使用Automapper将多个DTO对象映射到单个ViewModel对象?

本质上,我有多个DTO对象,并希望在ASP.NET MVC 2.0中的单个屏幕上显示每个对象的信息.为此,我想将DTO对象(或其中的一部分......)展平到Viewmodel中,并将所述viewmodel传递给视图.如果我有一个DTO,这将很容易,但我从未见过它是用多个完成的.显然,有很多迂回的方法可以做到这一点(在automapper之外),但这是我想采取的方法,如果可能的话.

.net c# asp.net asp.net-mvc automapper

18
推荐指数
3
解决办法
8974
查看次数

ASP.NET MVC ActionFilter - 确定AJAX请求

我正在使用ActionFilter来确定用户是否可以在执行操作之前访问特定资源,例如Account对象(la Rhino Security).这是一个全局过滤器,如果授权值失败,它会重定向到错误页面

我正在使用以下代码,它适用于整页请求:

filterContext.Controller.TempData["ErrorMessage"] = string.Format("You are not authorized to perform operation: {0}", operation);
filterContext.Result = new RedirectResult("~/Error/AuthorizationError");
Run Code Online (Sandbox Code Playgroud)

Ajax请求我不想应用重定向,而是返回错误消息.有没有办法告诉动作过滤器内部,如果这是一个AJAX请求或常规整页(抱歉不确定正确的术语)请求?

提前致谢

J.P

action-filter asp.net-mvc-3

17
推荐指数
1
解决办法
7386
查看次数

是否可以创建自定义ASP.NET MVC强类型HTML帮助程序?

我想知道是否可以在ASP.NET MVC 2中创建自定义强类型HTML Helper?创建一个常规(读取非强类型)帮助器很简单,但我很难创建强类型版本.例如,我想创建一个DatePickerFor html帮助器...

任何指导或片段将不胜感激,谢谢你提前!J.P

.net c# asp.net asp.net-mvc html-helper

16
推荐指数
1
解决办法
4521
查看次数

ASP.NET MVC 3 - microsoft-web-helpers v1.1的问题

我从nuget升级了我的microsof-web-helpers包,它本身依赖于facebook和twitter API.现在,当我的应用程序尝试运行时,我收到以下错误:

编译器错误消息:CS0246:找不到类型或命名空间名称'SimpleMembershipProvider'(您是否缺少using指令或程序集引用?)

Source Error:


Line 216:    }
Line 217:    
Line 218:    private static SimpleMembershipProvider GetMembershipProvider() {
Line 219:        var provider = Membership.Provider as SimpleMembershipProvider;
Line 220:

Source File: c:\Users\jp\documents\visual studio 2010\projects\myproj\myproj\App_Code\Facebook.cshtml    Line: 218 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人遇到过这个问题,可以告诉我是否需要在项目中添加任何其他引用,或者更糟糕的是,在我的应用程序中创建一个虚拟的SimpleMembershipProvider.我对更新facebook代码犹豫不决,因为无论何时我从nuget获得最新的microsoft-web-helpers,我都会被迫维护这个文件.

谢谢

J.P

c# nuget nuget-package asp.net-mvc-3

14
推荐指数
1
解决办法
3843
查看次数

Resharper - 运行NUnit单元测试构建

在使用Visual Studio执行本地构建时,是否可以使Resharper自动在解决方案中自动运行所有单元测试?我相信NUnit有一个选项"重新运行最后一次测试运行"但我没有通过Resharper或VS看到这样的选项.

提前致谢

J.P

[编辑]这可能或不重要,但我应该指出,我是一个单人团队,编写一个中型应用程序.

resharper nunit unit-testing visual-studio-2010

13
推荐指数
2
解决办法
2611
查看次数

是否在ASP.NET MVC 3中提供了Donut缓存

ASP.NET MVC 3(最终版)今天发布.当这个版本处于起步阶段时,我记得在codeplex上阅读正在考虑的环形缓存.有谁知道这是否成为V3?我似乎无法找到任何信息,所以我只能(遗憾地)认为它没有发生.

caching donut-caching asp.net-mvc-3

12
推荐指数
1
解决办法
5388
查看次数