您好我想从控制器解析数据到我的局部视图。我从数据库中获取数据并将其转换为List,并且列表字符串想要发送到部分视图,所以我可以用它来做... ...
public ActionResult ManipulateData()
{
List<string> str = new List<string>();
DataTable data = LoadDBData();
foreach (DataRow row in data.Rows)
{
foreach (DataColumn Col in data.Columns)
{
str.Add(row[Col].ToString());
}
}
return View(str);
}
这是我一直在尝试的代码,现在如何访问局部视图中的str数据?
(第二个想法是返回List with function并以某种方式调用函数并将数据传递给视图中的变量)
答案 0 :(得分:1)
您可以根据需要将数据从视图传递到视图。
说你有这个观点:
@model IEnumerable<DataLayer.StructuresList_Result>
<h2>@ViewBag.Title</h2>
@{
Html.RenderPartial("_StructureList", Model);
}
如您所见,我有一个模型的主视图,我将该模型直接传递给局部视图。
您还可以为模型创建包装器。
public class Wrapper
{
public string Name {get;set;}
public IEnumerable<MyClass> SubClasses {get;set;}
}
public class SubClass
{
//your subclass code here
}
然后以传统方式将此包装器传递给您的模型:
public ActionResult Index()
{
//get my wrapper object
Warpper w = new Wrapper();
return View(w);
{
然后在父视图中使用它并将SubClass传递给partial:
@model YourProjectName.Wrapper
<h2>Model.Name</h2>
@{
Html.RenderPartial("_StructureList", Model.SubClasses);
}
然后,您可以像访问父视图中的数据一样访问该数据。
@model IEnumerable<string>
@foreach(var item in Model)
{
//do something with model data
}
我没有测试任何这个,但它看起来是正确的。
Chris对一件事情是正确的,这是非常基本的asp.net MVC。我建议你阅读一些MVC教程:
ASP.NET网站:http://www.asp.net/mvc
Youtube视频:https://www.youtube.com/watch?v=-pzwRwYlXMw&list=PL6n9fhu94yhVm6S8I2xd6nYz2ZORd7X2v