0

我在将某些数据解析到 PartialView 时遇到了一些问题。在字典中解析时,属性值和键在 ViewData 中设置......我如何将字典与 ViewData 合并......所以我可以使用这样的键访问我的字典项目:

ViewData["key"] as IList<T>;

代替

ViewData["Values] <- Which is a List that Contains my list.

我将像这样使用它......只是不想要匿名/魔术字符串名称。

<%: Html.EditorFor(x => x.GroupId, "SimpleSelectList", new { Selected = 10}) %>

我希望做这样的事情。<%: Html.EditorFor(x => x.GroupId, "SimpleSelectList", Html.AddViewData(Model.List)) %>

使用此扩展方法:

public static IDictionary AddViewData<T>(this HtmlHelper helper, T item)
{
    var dictionary = new Dictionary<string, object>();
    dictionary.Add(typeof(T).Name, item);
    return dictionary;
}

然后我将永远知道 SimpleSelectList 模板应该寻找什么......并且不必再次依赖另一个魔术字符串......

或者人们如何做到这一点?只是试图进入代码库以及人们如何做这种事情......

4

1 回答 1

1

就我个人而言,我根本不会ViewData在这种情况下使用。

拥有一个将您的字典隐含为属性的视图模型会更加清晰和清晰。然后,您可以将此视图模型传递给您的视图,然后传递给您的局部视图......或者只是将视图模型的一部分传递给您的局部视图(取决于您需要什么数据)。

于 2011-01-16T18:36:29.497 回答