C# 在MVC4中通过ViewBag/ViewData将列表移动到视图并从中进行选择
我正在重构别人用ASP.NETMVC4Razor编写的应用程序。[.NET不是我的专长-我主要从事C/C++]。他不是以MVC规范的方式访问数据库。他为每个表使用一个Repository类在SQLServer上执行所有SQL命令,而不是让基本实体框架来完成繁重的工作。应用程序必须: 从控制器读取表中的行列表,他有一个表的模型 将此模型对象列表返回到视图ViewBag或ViewData将是最简单的 在视图的表或列表中插入列表成员 从列表中选择一行表示,将所选行返回控制器ActionResult-模型类中的一个表记录 在控制器调用的存储库类部分代码中:C# 在MVC4中通过ViewBag/ViewData将列表移动到视图并从中进行选择,c#,asp.net-mvc-4,razor,C#,Asp.net Mvc 4,Razor,我正在重构别人用ASP.NETMVC4Razor编写的应用程序。[.NET不是我的专长-我主要从事C/C++]。他不是以MVC规范的方式访问数据库。他为每个表使用一个Repository类在SQLServer上执行所有SQL命令,而不是让基本实体框架来完成繁重的工作。应用程序必须: 从控制器读取表中的行列表,他有一个表的模型 将此模型对象列表返回到视图ViewBag或ViewData将是最简单的 在视图的表或列表中插入列表成员 从列表中选择一行表示,将所选行返回控制器ActionResult-
public List<Note> GetNotesByWorkGroup(string workGroup)
{
List<Note> notes = new List<Note>;
string sql = "SELECT * FROM tblNotes where WorkGroup = 'Foo';
SqlCommand sqlCmd = new SqlCommand(sql, conn);
SqlDataReader myReader = sqlCmd.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
{
Note note = new Note();
note.NoteId = myReader.GetInt32(NoteIdOrdinal);
note.DateTime = myReader.GetDateTime(DateTimeOrdinal);
note.WrittenBy = myReader.GetString(WrittenByOrdinal);
notes.Add(note);
}
}
return notes;
}
然后javascript函数可以在单击时接收Id并将其提交给控制器ActionResult
我只需要一个视图代码MVC4,C,Razor的示例,显示ViewData[myList]是如何从C解引用到HTML并插入到列表或表中的行中的。另外,如何在传递parm的javascript函数中编写submit
对视图有什么建议和示例吗?我的第一个建议是从控制器返回注释,而不是设置视图数据 否则,您应该能够像访问数组一样访问ViewData[myList]。ViewData[myList][0]。属性名称
如果我能找到一些示例代码,我希望能有所帮助,我将更新这篇文章。您可以使用ViewModel、ViewBag或ViewData方法执行此任务 视图模型 ViewBag或ViewData 您可以创建一个表,然后遍历所有数据
<table>
<tr>
<td>date</td>
<td>writtenby</td>
</tr>
@foreach (var item in ViewData["myList"])
{
<tr>
<td>@item.date</td>
<td>@item.writtenby</td>
</tr>
}
</table>
尝试一下,希望能有所帮助。谢谢这里,item将是Note的一个实例,而不是Html.ActionLink第一个参数所需的字符串。请使用item.date1而不是item记住,我通常不是C/ASP.NET编码员。我是否通过调用Viewnotes返回它?我必须投吗?视图是否自动具有对注释列表的访问权限,或者我是否也必须在视图中强制转换注释列表?若能提供代码片段,将不胜感激。
Date1 WrittenBy
Date2 WrittenBy
Date3 WrittenBy
foreach (var item in Model.myList)
{ }
<table>
<tr>
<td>date</td>
<td>writtenby</td>
</tr>
@foreach (var item in ViewData["myList"])
{
<tr>
<td>@item.date</td>
<td>@item.writtenby</td>
</tr>
}
</table>
@{
List<Note> _list = ViewData["myList"] as List<Note>;
}
@if (_list != null)
{
foreach (var item in _list)
{
@Html.ActionLink(item, "Index");
}
}