0

これはビューです:

@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);
}

ここに必要なものはすべてあります。モデルを使用してビューで作成しているため、1つのビューに2つのモデルを含めることは許可されていないため、モデルとして「インデックス」を送信することはできません。

現在、「Tupe」を親ビューとして使用したくありません。IEnumerableをビューに送信するための最良の方法を知りたいだけです。

私は最後のオプションとしてViewBagを考えていましたが、ViewBagを避けています。

ありがとう

4

3 に答える 3

2

ViewBagは良い選択ではありません。リストと現在のモデルを使用してViewModelを作成します。

    public class YourViewModel
    {

        public sistema_DocType Type { get; set; }
        public IEnumerable<string> Indices {get;set;}
    }

願っています、それは助けになります。

于 2012-12-04T14:10:08.087 に答える
1

なんらかの理由でViewBagを使用したくない場合は、必要な古いモデルと新しいインデックスからの情報を含むビュー専用のモデルを作成できます。これはMVC開発の一般的なパターンです。ViewModelを現在のモデルのデコレータにすることもできます。

http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx

于 2012-12-04T14:09:00.350 に答える
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();
于 2012-12-04T14:08:07.443 に答える