小编Zor*_*ran的帖子

在局部视图中修改MVC 3 ViewBag不会持久保存到_Layout.cshtml

我正在使用带有Razor视图引擎的MVC 3.我想在部分视图中的ViewBag中设置一些值,并希望在_Layout.cshtml中检索这些值.例如,当您设置默认的ASP.NET MVC 3项目时,您将在"/ Views/Shared"文件夹中获得_Layout.cshtml文件.在_Layout.cshtml中,页面标题设置如下:

<title>@ViewBag.PageTitle</title>
Run Code Online (Sandbox Code Playgroud)

然后在"/Views/Home/About.cshtml"视图中修改ViewBag的内容:

@{
    ViewBag.Title = "About Us";
}
Run Code Online (Sandbox Code Playgroud)

这很好用.呈现"关于"视图时,页面标题为"关于我们".所以,现在我想在我的About视图中渲染一个Partial视图,我想修改我的Partial视图中的ViewBag.Title.( "/Views/Shared/SomePartial.cshtml")

@Html.Partial("SomePartial")
Run Code Online (Sandbox Code Playgroud)

在此部分视图中,我有以下代码:

@{
    ViewBag.Title = "About Us From The Partial View";
}
Run Code Online (Sandbox Code Playgroud)

当我调试这段代码时,我看到ViewBag.Title被设置为"关于我们",然后在Partial视图中我看到它被重置为"关于我们从部分视图",但是当代码命中_Layout.cshtml时它会去回到"关于我们".

这是否意味着如果在部分视图中修改了ViewBag的内容,那么这些更改将不会在主视图(About.cshtml)或_Layout.cshtml中显示(可访问)?

提前致谢!

view partial razor viewbag asp.net-mvc-3

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

ASP.NET MVC3 Fluent验证构造函数每次请求多次命中

我使用流畅的验证和ninject设置了一个ASP.NET MVC3网站.验证码正在运行.但是,我在验证类构造函数中设置了一个断点,我注意到当我请求使用验证的视图时,构造函数会被多次命中.基于非常基本的测试,似乎命中构造函数的次数等于对象上存在的属性数.还有其他人遇到过类似的东西吗?或者有人可以更深入地了解这种类型的验证在幕后如何运作?-谢谢

这是构造函数......

public class PersonValidator : AbstractValidator<Person> {
    public PersonValidator() {
        RuleFor(x => x.Id).NotNull();
        RuleFor(x => x.Name).Length(0, 10);
        RuleFor(x => x.Email).EmailAddress();
        RuleFor(x => x.Age).InclusiveBetween(18, 60);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的库/资源(我刚刚获得了NuGet包并根据以下两个链接的信息配置了所有内容):

http://fluentvalidation.codeplex.com/wikipage?title=mvc https://github.com/ninject/ninject.web.mvc.fluentvalidation

ninject fluentvalidation asp.net-mvc-3

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