这是视图:
@model tgpwebged.Models.sistema_DocType
...
此模型是与textBoxFor和其他html助手一起使用的实体
这是控制器。
public ActionResult AdminSettingAddTipo()
{
IEnumerable<string> indices;
using (tgpwebgedEntities context = new tgpwebgedEntities())
{
var obj = from u in context.sistema_Indexes select u.idName;
indices = obj.ToList();
}
return PartialView(indices);
}
我有我需要的所有东西,我正在使用模型来创建视图,因此我不允许将'indices'作为模型发送,因为在一个视图中不允许有2个模型。
我现在不想使用'Tupe'作为父视图。我只是想知道将IEnumerable发送到视图的最佳方法是什么。
我在考虑使用ViewBag作为最后一个选项,但我正在避免使用ViewBag。
谢谢
答案 0 :(得分:2)
ViewBag不是一个好选择。使用列表和当前模型创建ViewModel:
public class YourViewModel
{
public sistema_DocType Type { get; set; }
public IEnumerable<string> Indices {get;set;}
}
希望,这会有所帮助。
答案 1 :(得分:1)
如果您因任何原因不想使用ViewBag,可以专门为包含旧模型信息和所需新索引的视图创建模型。这是MVC开发中的常见模式。您甚至可以将ViewModel作为当前模型的装饰器。
http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx
答案 2 :(得分:0)
尽可能使用强定义,将其应用于模型并发送该模型:
<强>模型强>
public class MyModel{
public List<sistema_Indexes> indecies {get;set;}
}
<强>控制器强>
MyModel model = new MyModel();
model.indecies = context.sistema_Indexes.Select(u=> u.idName).ToList();