相关疑难解决方法(0)

在局部视图中修改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 Singleton

只是想确保我在这里假设一些愚蠢的东西,在ASP .Net Web应用程序中实现单例模式时,静态变量作用域仅适用于当前用户会话,对吧?如果第二个用户正在访问该站点,那么它是一个不同的内存范围......?

c# asp.net singleton static

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

ASP.NET中的ThreadStaticAttribute

我有一个组件需要static在每个线程之前存储值.它是一个通用组件,可以在许多场景中使用,而不仅仅在ASP.NET中使用.

我正在考虑使用该[ThreadStatic]属性来实现我的目标.假设它在ASP.NET场景中也能正常工作,因为我假设每个Request都在自己的线程中调用.

经过一些研究后,我发现Scott Hanselman 撰写的这篇博客文章[ThreadStatic]在ASP.NET中使用时要小心.

然而,大多数评论(在帖子下面)都不同意斯科特写的,说请求总是在一个线程中运行,并且该线程不会被另一个请求同时使用.这也是我所相信的,但我很乐意在这里对你的专家有一些看法.

.net c# asp.net multithreading threadstatic

21
推荐指数
1
解决办法
6567
查看次数

Web应用程序中的静态变量

我可以在Web应用程序中使用静态变量吗?什么是静态的替代品?当我在页面中使用静态变量并且多个用户使用该应用程序时,它会产生冲突数据(不正确的数据).

使用静态成员的限制是什么?

静态成员是否在内存中共享?

.net c# asp.net session static-members

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

如何从静态WebMethod绑定gridview

我使用静态Web方法使用jQuery调用了一个代码隐藏方法.那个web方法调用是成功的,但是当我在该方法中绑定网格视图时会产生一个错误,该错误无法在静态方法中使用控件.我们可以解决这个问题.

  public static DataTable GetDataTable()
        {
            DataSet ds = new DataSet();        
            SqlCommand cmd = new SqlCommand("StoredProcedurename");
            String constr = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
            SqlConnection con = new SqlConnection(constr);


            string Startdate = DateTime.Now.ToString("yyyy-MM-dd");
            string EndDate = Convert.ToDateTime(Startdate).AddMonths(-6).ToString("yyyy-MM-dd");
            cmd.CommandType = CommandType.StoredProcedure;      
            cmd.Parameters.AddWithValue("@FromDate", Startdate);
            cmd.Parameters.AddWithValue("@ToDate", EndDate );
            cmd.Connection = con;
            SqlDataAdapter sda = new SqlDataAdapter(cmd);       

            sda.Fill(ds);

            //i want to use same dataset to bind with the grid
            gridToBind.DataSource = ds.Tables[1];
            gridToBind.DataBind();
            txtStatus.Text="Data Received";
           //above three lines throws error.

          return ds.Tables[1];

        }
Run Code Online (Sandbox Code Playgroud)

并获得错误"非静态字段,方法或属性需要对象引用"

.net c# asp.net static-methods datagridview

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

使用该站点的任何人都可以访问ASP.NET MVC网站中的全局值吗?或者它是每个会话的实例?

我向MVC4网站添加了一些新功能。我刚刚添加了一个全局静态类和一个全局变量来保存一个值,该值在用户访问网站期间的某个时刻确定,并将在以后用作条件。

然后我想到,我不确定在这种情况下静态值的全局性。

我是否必须将全局值指定为会话变量?

还是无论如何,站点的每个用户都可以在自己的会话中访问它,而我不必担心一个用户将其设置为一个值,而另一个用户可以访问此设置值。

asp.net asp.net-mvc global-variables asp.net-mvc-4

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

Asp.Net Singleton Pattern场景

在Asp.Net中,在什么情况下我将使用单例,因为大多数工作可以通过检查它是否为空来完成Session/Cache/Static.

请参阅我之前的问题

单例模式/检查空 - 在使用带会话的Asp.Net时

c# asp.net

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