相关疑难解决方法(0)

无法在ASP.NET MVC3的部分视图中访问ViewBag

我有一个控制器调用视图.在视图中有一个PartialView叫做be @Html.Partial("ViewName", model).this的工作正常.

但是controller我希望在viewbag中添加一些东西,这些东西很难放入view模型中,然后传递给视图.主视图访问没有问题ViewBag,但在PartialView它没有返回任何东西.

是否有可能ViewBag在这种情况下使用或者我应该将这些数据"破解"到我传递给视图的模型中(我传递给PartialView的模型,以及我传递给第一个PartialView嵌套的模型PartialView)?

viewbag asp.net-mvc-3

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

使用模型和ViewData项创建ViewDataDictionary的简写?

有没有办法ViewDataDictionary用一行代码创建一个模型和附加属性.我试图RenderPartial在组装模型和一些额外的显示配置属性时调用强类型视图,而无需跨多行显式组装ViewDataDictionary.似乎有可能给出RenderPartial一个模型object和a 的重载,ViewDataDictionary但看起来它只是忽略了ViewDataDictionary它们都被填充.

// FAIL: This will result in ViewData being a ViewDataDictionary
// where Model = MyModelObject and there are no other parameters available.
this.Html.RenderPartial("SomePartialView", MyModelObject, new ViewDataDictionary(new { SomeDisplayParameter = true }));
Run Code Online (Sandbox Code Playgroud)

我发现其他人有同样的问题,但他们的解决方案是我发现的相同的多线概念:ViewDataDictionary用模型创建离散,添加新参数并在RenderPartial调用中使用它.

var SomeViewData = new ViewDataDictionary(MyModelObject);
SomeViewData.Add("SomeDisplayParameter", true);
this.Html.RenderPartial("SomePartialView", SomeViewData);
Run Code Online (Sandbox Code Playgroud)

我总是可以将这个逻辑包装成一个ChainedAdd方法,该方法返回一个重复的字典,并添加了新的元素,但似乎我错过了一些创建一个ViewDataDictionary可以为我做这个的方法(这比我希望的更多开销)对于).

this.Html.RenderPartial("SomePartialView", new ViewDataDictionary(MyModelObject).ChainedAdd("SomeDisplayParameter", true));

public static ViewDataDictionaryExtensions {
    public static ViewDataDictionary ChainedAdd(this ViewDataDictionary source, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc renderpartial

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