相关疑难解决方法(0)

ViewData和ViewBag有什么区别?

ViewBag在MVC 3中看到了.ViewData与MVC 2有什么不同?

.net viewdata viewbag asp.net-mvc-3 difference

325
推荐指数
9
解决办法
19万
查看次数

ASP.NET MVC中的ViewBag如何在幕后工作?

我正在阅读一本关于ASP.NET MVC的书,我想知道以下示例是如何工作的:

示例#1

调节器

public class MyController : Controller
{
    public ActionResult Index()
    {
        ViewBag.MyProperty = 5;

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

视图

<h1>@ViewBag.MyProperty</h1>
Run Code Online (Sandbox Code Playgroud)

现在我明白了ViewBag是一个动态的对象,所以这是如何设置的属性(虽然我不知道很多关于动态对象,从来没有与他们合作.)但如何看法得到的特定实例ViewBag从控制器,即使我们没有直接传递任何东西?

我认为它ViewBag可能是一个public static对象,但是对它的任何改变都是全局的,它不会特定于视图实例.

你能详细说明这是如何在幕后工作的吗?

例#2

调节器

public class MyController : Controller
{
    public ActionResult Index()
    {
        ViewBag.MyProperty = 5;

        return View();
    }

    public ActionResult Index2()
    {
        ViewBag.MyProperty = 6;

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说Index首先调用该方法,然后调用Index2.最后,值ViewBag.MyProperty将最终为6(来自的值Index2).我觉得这不是一件好事,但与此同时我觉得我在思考桌面开发术语.也许与ASP.NET MVC一起使用无关紧要,因为Web是无状态的.是这样的吗?

c# asp.net-mvc dynamic viewbag

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

有没有办法,我可以只传递一个整数到我的视图,而无需在mvc中创建模型

我有一个调用视图的控制器.有没有办法可以只传递一个整数到我的视图,能够在我的视图中使用剃刀代码的整数?

这是我的控制器中的方法:

public ActionResult Details(int linkableId)
{
    return View(linkableId);
}
Run Code Online (Sandbox Code Playgroud)

返回我的视图后,我可以使用像这样的razor代码来访问这个int:

@linkableId
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

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

混淆ASP.NET MVC4中的返回View()方法

我是ASP.NET MVC4的新手.我正在阅读本教程http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view.我不清楚返回View()方法.要将数据从视图发送到控制器,我已使用此代码

 public ActionResult Index()
    {
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

这里返回View()方法将数据从视图返回到控制器.要从控制器发送数据到视图,我已经使用了这段代码

public ActionResult Welcome(string name, int numTimes = 1)
    {
        ViewBag.Message = "Hello " + name;
        ViewBag.NumTimes = numTimes;
        return View();

    }
Run Code Online (Sandbox Code Playgroud)

这是我的困惑点.返回View()方法是否将ViewBag.Message和ViewBag.NumTimes返回到Welcome视图.或欢迎视图的值返回到欢迎方法?

请帮我清除这一部分.

c# asp.net asp.net-mvc asp.net-mvc-4

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

通过F#代码迭代插入ASP.NET MVC4页面的ViewData中的字典?(剃刀)

叫我疯了,但我正在用F#开发一个ASP.NET MVC4站点.这是我的第一个障碍; 在控制器中我提交字典,这样:

[<HandleError>]
type FooController() =
    inherit Controller()
    member this.Index () =
        this.ViewData.Add("Foo", "Bar")
        this.ViewData.Add("Baz", dict [ (0, 0); (1, 3); (2, 2); ] )
        this.View() :> ActionResult
Run Code Online (Sandbox Code Playgroud)

现在我想迭代Razor模板中的值,该怎么做?我试过这个:

@foreach (var time in @ViewBag.Baz.Keys)
{
    <hr /><p>Time is @time, and value is @ViewBag.Baz[time]</p>
}
Run Code Online (Sandbox Code Playgroud)

但它抛出了这个错误:

Line 119:                    Total: <span class="highlight">6449</span> kW/h.
Line 120:                </p>
Line 121:                @foreach (var time in (@ViewBag.Baz).Keys)
Line 122:                {
Line 123:                    <hr /><p>Time is @time, and value is @ViewBag.Baz[time]</p>

[RuntimeBinderException: 'object' does not contain …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc f# razor asp.net-mvc-4

4
推荐指数
1
解决办法
1102
查看次数