C#在一个视图中解析IEnumerable和字符串数据

时间:2014-05-16 18:34:44

标签: c# asp.net-mvc asp.net-mvc-4 razor

我有一些代码将IEnumerable列表和字符串数据传递给视图。

如何同时传递IEnumerablestring

我有一个控制器

private readonly IBooksBusinessLogic _books;

public ActionResult Books(int Id)
{
    IEnumerable<BooksViewModel> listData = _books.GetListByIdProvinsi(Id);

    String a = "estc";

    return View(listData);
}

但在视图中只显示结果列表

@model IEnumerable<Library.ViewModel.BooksViewModel>

Name Library : (String from Controller)

@foreach (var item in Model)
{
    @Html.DisplayFor(modelItem => item.BooksName)
}

如何将列表和字符串一起传递?

2 个答案:

答案 0 :(得分:0)

我不确定您正在寻找什么。但是,a变量仅存在于您的Controller中,如果您想从View访问它的值,请使用{ {3}}或ViewBag

而不是:

String a = "estc";

使用:

ViewBag.A = "estc";

然后,您可以使用View

ViewBag.A访问您的变量

答案 1 :(得分:0)

如果您想在视图中显示字符串值,请将其放入ViewBag

行动:

public ActionResult Books(int Id)
{
    IEnumerable<BooksViewModel> listData = _books.GetListByIdProvinsi(Id);

    ViewBag.Library = "estc";

    return View(listData);
}

查看:

@model IEnumerable<Library.ViewModel.BooksViewModel>

Name Library : @ViewBag.Library

@foreach (var item in Model)
{
    @Html.DisplayFor(modelItem => item.BooksName)
}

另一种选择是创建一个视图模型来保存库和书籍,但这可能是过度的。如果您发现自己使用了大量需要同时显示库名称和书籍列表的视图或操作,我建议您使用视图模型。