【问题标题】:asp.net mvc ViewDataasp.net mvc 查看数据
【发布时间】:2011-01-16 18:32:11
【问题描述】:

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

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

代替

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

我打算这样使用它......只是不想要匿名/神奇的字符串名称。

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

我希望做这样的事情。 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 模板应该寻找什么......并且不必再次依赖另一个魔术字符串......

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

【问题讨论】:

    标签: asp.net-mvc-2 viewdata asp.net-mvc-partialview


    【解决方案1】:

    我个人不会在这种情况下使用ViewData

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

    【讨论】:

    • 是的……这也是我的第一个想法。但是在这种情况下你会怎么做。我需要解析两件事。要显示的对象列表和选定的值(id)。如您所见,我对如何以一种干净整洁的方式构建它感到怀疑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多